November 27, 2020, 18:28:39

Neuigkeiten:

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


Abfrage mit 2 Tabellen IS NULL funktioniert nicht

Begonnen von hmfmartin, Mai 25, 2010, 11:35:51

⏪ vorheriges - nächstes ⏩

hmfmartin

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

database

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