Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: xoius am Mai 04, 2020, 13:46:39

Titel: Probleme beie Abfrage nach Daten
Beitrag von: xoius am Mai 04, 2020, 13:46:39
Hallo ihr Lieben,

nun habe ich noch ein Problem mit einer Abfrage. Mit Daten habe ich noch nicht so viel gearbeitet.

Ausgangspunkt
In der Tabelle tblKosten gibt es die Einträge GeleistetWann (Datum, formatiert mm.jjjj), Datumeingereicht (Datum, tt.mm.jjjj) und Kostenstatus ("eingereicht", "beimKunden" oder "fakturiert").

Ziel
Nun möchte ich mir durch eine Abfrage nur die Datensätze herausfiltern, die
a. den Status "eingereicht" haben und deren Datum "GeleistetWann" im vergangenen Monat oder davor liegt (Also NICHT irgendwie vor 30 Tagen, sondern wirklich an irgendeinem Tag im Mai schon alle Einträge im und vor April)

und

b. die den Status "beim Kunden" haben und wo das Datum von "Datumeingereicht" mindestens 14 Tage zurückliegt.

Mein Ansatz

...WHERE ((((tblKosten.GeleistetWann)<Month(Now())) AND ((tblKosten.Kostenstatus) = "eingereicht")) OR  (((tblKosten.Datumeingereicht)<Date()-14) AND ((tblKosten.Kostenstatus) = "beimKunden")));

Da kommt natürlich nix bei raus...vermutlich weil es murks ist :)

Vielen Dank fürs Anschauen!
Titel: Re: Probleme beie Abfrage nach Daten
Beitrag von: DF6GL am Mai 04, 2020, 14:11:33
Hallo,


ZitatWHERE (GeleistetWann < DateSerial (Year(Date()),Month(Date()),0)  AND Kostenstatus = "eingereicht")  Or (Datumeingereicht < Date() -14 AND Kostenstatus = "beimKunden")


btw:


ZitatDatum, formatiert mm.jjjj),
Es kommt auf den Datentyp an, nicht auf irgendwelche Formate...



Die Tabelle(n) gehören normalisiert, insofern sollte (muss) der Kostenstatus in eine separate Tabelle ausgelagert und über 1-n in Beziehung gesetzt werden.
Titel: Re: Probleme beie Abfrage nach Daten
Beitrag von: xoius am Mai 04, 2020, 14:49:43
Vielen Dank für alle Hinweise und die Lösung. Das Normalisieren nehme ich mir zu Herzen.
Titel: Re: Probleme beie Abfrage nach Daten
Beitrag von: nurmikss am Mai 07, 2020, 23:44:00
Zitat von: xoius am Mai 04, 2020, 13:46:39
... Datum "GeleistetWann" im vergangenen Monat oder davor liegt (Also NICHT irgendwie vor 30 Tagen, sondern wirklich an irgendeinem Tag im Mai schon alle Einträge im und vor April)
Spontane Idee (vorausgesetzt, dass im Feld "GeleistetWann" kein zukünftiges Datum steht):
Du könntest in einer Abfrage festlegen, dass der Monat von "GeleistetWann" nicht der aktuelle Monat sein darf, dann wird in Deinem Beispiel April und früher ausgegeben.