Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

berechnetes DateDiff-feld filtern





Frage

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 1 von hendrikw

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

Antwort 2 von !AUWEIA!

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

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!

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

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

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.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: