Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: schubidu am Dezember 29, 2016, 15:51:32

Titel: Zahlen über 4 Quartale in einer Abfrage ermitteln
Beitrag von: schubidu am Dezember 29, 2016, 15:51:32
Hallo zusammen,

ich habe in einer Tabelle u.a. folgende Angaben gespeichert:
Behandlungsdatum, AktuellerZustand (1=lebt, 2=verstorben).

Ich möchte in einer Abfrage über die letzten 4 Quartale jeweils die Anzahl lebender Patienten ermitteln, die ich dann grafisch verarbeiten kann.
Das Startdatum frage ich ab mit "Bitte Jahr eingeben" und mit "Bitte Quartal eingeben".

Wie kann ich die nächsten 3 Quartale berechnen? Muss ich jeweils eine Abfrage erstellen oder könnte man das auch mit einer einzigen Abfrage bewerkstelligen? Bislang komme ich über das erste Quartal nicht hinaus....

SELECT Year([TX Datum]) & DatePart("q",[TX Datum]) AS Quartal_TxStart, Patientendaten.Todesdatum, Count(Patientendaten.Todesdatum) AS AnzahlvonTodesdatum
FROM Patientendaten INNER JOIN Transplantationen ON Patientendaten.PatID = Transplantationen.TxPatID
WHERE (((Year([TX Datum]))=[Bitte Jahr eingeben]) AND ((Format([TX Datum],"q"))=[Bitte Quartal eingeben]))
GROUP BY Year([TX Datum]) & DatePart("q",[TX Datum]), Patientendaten.Todesdatum
ORDER BY Year([TX Datum]) & DatePart("q",[TX Datum]);


Ich hoffe, Ihr könnt mir einen Denkanstoß geben.

vielen Dank

Titel: Re: Zahlen über 4 Quartale in einer Abfrage ermitteln
Beitrag von: ebs17 am Dezember 29, 2016, 18:08:52
ZitatDenkanstoß geben
Denke einmal selber nach: Wie würdest Du aus Quartal 4/2016 die nächsten 3 Quartale ermitteln?

Ein Zeitraum wird bestimmt durch Beginn und Ende. Daher würde man eine simple und höchst variable Filterung auf die folgende Weise erreichen können:
WHERE [TX Datum] BETWEEN [BeginnTagZeitraum] AND [EndeTagZeitraum]
Eine solche Filterung lässt dann auch eine Indexnutzung zu (Performancechancen).

Wer jetzt nur in Kalenderwochen, Quartalen usw. denken kann, kann ja entsprechende Voreingaben in entsprechende Datumswerte umrechnen.
Titel: Re: Zahlen über 4 Quartale in einer Abfrage ermitteln
Beitrag von: schubidu am Dezember 30, 2016, 10:54:19
Hallo Eberhard

ganz herzlichen Dank für den ermunternden "Denkanstoß". Damit konnte ich das Problem lösen:

SELECT Year([TX Datum]) & DatePart("q",[TX Datum]) AS Quartal_Start, Year([TX Datum])-1 & DatePart("q",[TX Datum]) AS Quartal_Ende
FROM Patientendaten INNER JOIN Transplantationen ON Patientendaten.PatID = Transplantationen.TxPatID
WHERE (((Year([TX Datum]) & DatePart("q",[TX Datum])) Between [Quartal_Start] And [Quartal_Ende]))
ORDER BY Year([TX Datum]) & DatePart("q",[TX Datum]);


herzlichen Dank. Du hast mir sehr geholfen!!!!