online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon !AUWEIA! vom 25.04.2019, 14:30 Options

berechnetes DateDiff-feld filtern

Hallo Leute,

ich hoffe Ihr könnt mir weiter helfen...

also,
ich hab hier eine Tabelle in meiner Access 2002 Datenbank,

in der ich 2 Datumsfelder habe.

Lieferdatum und Wunsch Lieferdatum

nun ziehe ich über DateDiff das Lieferdatum vom Wunschlieferdatum ab um die Liefertreue zu ermitteln.

klappt auch ganz gut soweit.

nun möchte ich allerdings noch auswerten, wie oft wir 1, 3, 7 oder über 7 Tage zu spät geliefert haben.

wenn ich nun einen Filter (Beispielweise between 1 AND 3)über mein DateDiff-Feld lege, sagt mir access "Data Type mismatch Criteria expression" wieso kann ich so nicht filtern oder noch besser, was muss ich machen damit ich filtern kann...

danke schon mal


Antwort schreiben

Antwort 1 von hendrikw vom 25.04.2019, 14:43 Options

Du musst über die Differenztage gruppieren, (group by datediff...) und dann zählen, wie oft das vorkommt.
mfg
Hendrik

Antwort 2 von !AUWEIA! vom 25.04.2019, 14:55 Options

dat versteh ich nich so ganz,

ich hab mein Feld Abweichung schon erstellt, jetzt möchte ich in einer neuen abfrage zählen, wieviele von diesen Abweichungen z.B. den Wert 1 haben...

wie soll das mit der Group by funktion gehen, die zeigt gruppiert mir doch nur die Datensätze die den Wert 1 haben. somit hab ich dann also nur einen Datensatz...??

Antwort 3 von hendrikw vom 25.04.2019, 15:05 Options

Sorry, ich benutze kein Access. Daher kann ich Dir nicht sagen, wie man das da zusammenklickt.
Hier eine SQL-Variante (mit ausgedachten Tabellen/Spaltennamen):

select count(1), datediff(day,Wunschdatum, Lieferdatum)
from LIEFERUNGEN
group by datediff(day,Wunschdatum, Lieferdatum)

Ob das in Access so passt, musst Du wohl ausprobieren.

mfg
Hendrik

Antwort 4 von !AUWEIA! vom 25.04.2019, 15:25 Options

ok, hab ich probiert,

er schmeist mir folgende Fehlermeldung raus:

the LEVEL clause includes a reserved word or argument that is misspelled or missing, or the punctuation is incorrect.

is weiß nich genau ob du damit was anfangen kannst, aber ich denke es hängt mit dem datediff zusammen
mein quellcode sieht so aus:


SELECT Datumsabweichung.WunschDatum, Datumsabweichung.ProdDatum,datediff(day,WunschDatum,ProdDatum)
FROM Datumsabweichung;
group by datediff(day,WunschDatum, ProdDatum);

Antwort 5 von Teddy7 vom 25.04.2019, 15:48 Options

Du hast also eine Abfrage über die Daten ergänzt um eine zusätzliche Spalte, in der die Differenz steht.

Mach eine neue Abfrage über alle Felder dieser Abfrage und selektiere in dieser neuen Abfrage.

Warum ? Weiß nicht, aber es klappt.

Gruß
Teddy

Antwort 6 von hendrikw vom 25.04.2019, 15:49 Options

Bei einem group by darf man nach SQL-Standard nur Spalten in die Select-Menge aufnehmen, nach denen auch gruppiert worden ist, bzw. solche Funktionen wie count(), sum(), avg(), usw.
Nimm erstmal die 2 Spalten Datumsabweichung.WunschDatum, Datumsabweichung.ProdDatum heraus (und ersetze sie durch ein count(1) oder count(*) bzw. das Access-Äquivalent zu dieser SQL-Funktion).

Dann solltest Du in der Access-Hilfe herausfinden, ob man in Access die datediff-Funktion so benutzt, oder ob die da eine andere Syntax haben.

Ähnliche Themen

Kann man bei Excel mit einem Drop Down menü filtern??
janhilberg1989  24.01.2007 - 253 Hits - 10 Antworten

rechne wenn
Ghira  26.01.2008 - 57 Hits - 1 Antwort

Acces Berechnetes Feld in Bericht summieren
Nathi  15.03.2008 - 98 Hits - 4 Antworten

access abfrage
lbw54  05.05.2008 - 153 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026