Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: hmfmartin am Mai 25, 2010, 11:35:51

Titel: Abfrage mit 2 Tabellen IS NULL funktioniert nicht
Beitrag von: hmfmartin am Mai 25, 2010, 11:35:51
Hallo, ich habe mal eine kleine Abfrage geschrieben zu folgender Aufgabe:

"Ermitteln sie welcher Kunde bestellt hat aber keine Lieferung bekommen hat"

meine SQL abfrage sieht folgendermaßen aus...


SELECT DISTINCT T_Kunden.name
FROM T_Kunden, T_Bestellungen, T_Positionen
WHERE T_Bestellungen.bestelldatum IS NOT NULL AND T_Bestellungen.lieferdatum IS NULL;

Angezeigt bekomme ich aber Alle Kunden!!!! und nicht nur die 2 die nicht beliefert wurden

Gruß
martin
Titel: Re: Abfrage mit 2 Tabellen IS NULL funktioniert nicht
Beitrag von: database am Mai 25, 2010, 13:17:52
Hallo,

das kann so nicht recht funktionieren.

1. Du hast eine Tabelle in der From-Klausel stehen, die nicht betroffen ist (T_Positionen)
2. Du hast Tabellen ihn der From-Klausel stehen, von denen NICHT bekannt gegeben wurde wie sie zusammenhängen.
3. Betrifft jedoch nicht das Ergebnis direkt ... Du verwendest in der T_Kunden ein reserviertes Wort als Feldnamen (name)


So sollte die Where-Klausel enthalten wie die T_Bestellungen mit der T_Kunden in Beziehung steht (wenn Primärschlüssel und Fremdschüssel KundenID heissen....)
WHERE T_Kunden.KundenID = T_Bestellungen.KundenID AND T_Bestllungen.Bestelldatum Is Not NULL AND T_Bestellungen.Lieferdatum IS NULL

oder


SELECT DISTINCT T_Kunden.[name]
FROM T_Kunden INNER JOIN T_Bestellungen
ON T_Kunden.KundenID = T_Bestellungen.KundenID
WHERE T_Bestellungen.bestelldatum IS NOT NULL AND T_Bestellungen.lieferdatum IS NULL


HTH

Peter