Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

komplizierte Abfrage?

Begonnen von forumoperator, Februar 19, 2015, 07:24:19

⏪ vorheriges - nächstes ⏩

forumoperator

Hallo!

Mich plagt seit Längerem eine Frage:

Ich möchte die Summe aller Datensätze einer Tabelle auslesen, welche älter sind als 4 Tage (vom aktuellen Datum an gerechnet) und bei denen das Geburtsdatum < 25 ist. Das Ergebnis soll dann in einem Textfeld eines Formulars erscheinen.

Ich habe keine Ahnung, wie ich das umsetzen könnte - ob ich das in einer Abfrage realisieren könnte oder ob mehrere Schritte notwendig sind etc.

Vielen Dank für eure Hilfe!!
Kann mir da jemand behilflich sein?

MzKlMu

Hallo,
Zitatund bei denen das Geburtsdatum < 25
was soll das sein ?
Gruß Klaus

forumoperator

Zitat von: MzKlMu am Februar 19, 2015, 08:19:04
Hallo,
was soll das sein ?

Es sollen alle Datensätze (in Summe) ausgegeben werden, welche - ausgehend vom aktuellen, heutigen Datum - älter sind als 4 Tage und die jünger sind als 25 Jahre.

Wenn jemand jünger als 25 ist und das Eingangsdatum der 16.02.2015 ist, dann soll ein solcher Datensatz ausgegeben werden, bzw. gezählt werden.

MaggieMay

Hallo,

deine Beschreibung ist immer noch ziemlich unverständlich bzw. fehlerhaft.

Um Daten nach bestimmten Kriterien auswerten zu können, müssen diese erstmal präzische definiert werden. "Eingangsdatum 16.02.2015" und "älter als 4 Tage" ist schonmal in zweierlei Hinsicht nicht deckungsgleich. Zum einen stimmt die Differenz nicht (heute: 19.02.2015) und zum anderen sind "gleich" und "älter als" zwei verschiedene Vergleichsoptionen. Außerdem kann man "Datensätze" nicht summieren, höchstens zählen.

Lege dich auf eine eindeutige Beschreibung fest, dann kann man einen konkreten Vorschlag machen.
Freundliche Grüße
MaggieMay

forumoperator

Zitat von: MaggieMay am Februar 19, 2015, 10:55:24
Hallo,

deine Beschreibung ist immer noch ziemlich unverständlich bzw. fehlerhaft.

Um Daten nach bestimmten Kriterien auswerten zu können, müssen diese erstmal präzische definiert werden. "Eingangsdatum 16.02.2015" und "älter als 4 Tage" ist schonmal in zweierlei Hinsicht nicht deckungsgleich. Zum einen stimmt die Differenz nicht (heute: 19.02.2015) und zum anderen sind "gleich" und "älter als" zwei verschiedene Vergleichsoptionen. Außerdem kann man "Datensätze" nicht summieren, höchstens zählen.

Lege dich auf eine eindeutige Beschreibung fest, dann kann man einen konkreten Vorschlag machen.


Nun....:
Ich bitte um Hilfe bei folgender Frage:
In einer Tabelle stehen unter anderem folgende Informationen:

Name, Vorname, Geburtsdatum, Eingangsdatum.

In Abhängigkeit des Geburtsdatums (älter oder jünger als 25 Jahre) soll mir die Summe der Datensätze ausgegeben werden, für die gilt:

a) wenn jünger als 25 Jahre, Eingangsdatum + 3 Tage (Eingangsdatum mitgezählt!). Um zu meinem Beispiel zu gelangen: Wenn das Eingangsdatum der 16.02.2015 ist, soll der Datensatz ab heute (19.02.2015) gezählt werden.

b) wenn älter als 25 Jahre, Eingangsdatum + 10 Tage (Eingangsdatum mitgezählt!). Um bei meinem Beispiel zu bleiben: Wenn das Eingangsdatum der 16.02.2015 ist, soll der Datensatz ab dem 26.02.2015 gezählt werden.

Zur Verdeutlichung beigefügtes Bild. Ich hoffe, das ist nun so verständlich. Anmerkung: Die Spalte Anmerkung ist nur im Bild vorhanden und existiert in der richtigen Tabelle nicht.

MaggieMay

Zitatsoll mir die Summe der Datensätze ausgegeben werden
schon wieder "Summe".  ::)
Eine Summe ist das Ergebnis einer Addition, was genau willst du hier addieren?

Nehmen wir einmal an, du willst die Datensätze zählen, bei denen das Alter < 25 Jahre und das Eingangsdatum mindestens 3 Tage her ist ODER das Alter > 25 Jahre und das Eintrittsdatum mindestens 10 Tage her ist.

Was aber machst du mit den 25-Jährigen?!

Die folgende Abfrage sollte dich ein Stückchen weiter bringen:SELECT tblMitarbeiter.MitID, tblMitarbeiter.Nachname, tblMitarbeiter.Vorname, tblMitarbeiter.Geburtsdatum, DateDiff("yyyy",[geburtsdatum],Date())+(Format(Date(),"mmdd")<Format([Geburtsdatum],"mmdd")) AS [Alter], tblMitarbeiter.Eintrittsdatum, tblMitarbeiter.Austrittsdatum
FROM tblMitarbeiter
WHERE (
((tblMitarbeiter.Geburtsdatum) Is Not Null) AND
((DateDiff("yyyy",[geburtsdatum],Date())+(Format(Date(),"mmdd")<Format([Geburtsdatum],"mmdd")))>25 AND (tblMitarbeiter.Eintrittsdatum)<=Date()-10  OR
(DateDiff("yyyy",[geburtsdatum],Date())+(Format(Date(),"mmdd")<Format([Geburtsdatum],"mmdd")))<25 AND (tblMitarbeiter.Eintrittsdatum)<=Date()-3) AND
((tblMitarbeiter.Austrittsdatum) Is Null)
);

Das ist erstmal nur die Auswahlabfrage. Auf Basis dieser Abfrage kannst du eine weitere Abfrage zur Datensatzzählung erstellen oder (per VBA) die DCount-Methode einsetzen.
Freundliche Grüße
MaggieMay