Hallo ich habe 3 Tabellen miteinander verknüpft. Tabelle 1 beinhaltet alle Adressdaten, Tabelle 2 alle Daten zu einem Objekt( Gerät) und Tabelle 3 alle Daten zu dem Zubehör für die Geräte.
Ich möchte mir jetzt alle Kunden anzeigen lassen, welche ein bestimmtes Zubehör nicht besitzen. mit folgender Abfrage kann ich mir wunderbar anzeigen lassen welche Kunden dieses Zubehör besitzen:
SELECT dbo.KHKAdressen.Referenz, dbo.KHKAdressen.Name1, dbo.KHKAdressen.Name2, dbo.KHKAdressen.LieferStrasse, dbo.KHKAdressen.LieferLand, dbo.KHKAdressen.LieferPLZ, dbo.KHKAdressen.LieferOrt
FROM dbo.KHKAdressen
where dbo.KHKAdressen.Referenz in
(
SELECT dbo.KHKAdressen.Referenz
FROM dbo.KHKAdressen inner JOIN dbo.BCSPjmObjekte ON dbo.KHKAdressen.Adresse = dbo.BCSPjmObjekte.Adresse where dbo.BCSPjmObjekte.Objektnummer IN
(SELECT BCSPjmObjekte.Objektnummer FROM BCSPjmObjekte Inner join dbo.BCSPjmObjekteZubehoer ON dbo.BCSPjmObjekte.Objektnummer = dbo.BCSPjmObjekteZubehoer.Objektnummer
where dbo.BCSPjmObjekteZubehoer.Artikelnummer IN ('7711001242', '7711001050', '11000013'))
)
warum funktioniert das nicht mit NOT IN? Ich erhalte 0 Datensätze zurück. Hab ich nen Denkfehler drin? bin am Verzweifeln :-P
SELECT dbo.KHKAdressen.Referenz, dbo.KHKAdressen.Name1, dbo.KHKAdressen.Name2, dbo.KHKAdressen.LieferStrasse, dbo.KHKAdressen.LieferLand, dbo.KHKAdressen.LieferPLZ, dbo.KHKAdressen.LieferOrt
FROM dbo.KHKAdressen
where dbo.KHKAdressen.Referenz NOT IN
(
SELECT dbo.KHKAdressen.Referenz
FROM dbo.KHKAdressen inner JOIN dbo.BCSPjmObjekte ON dbo.KHKAdressen.Adresse = dbo.BCSPjmObjekte.Adresse where dbo.BCSPjmObjekte.Objektnummer IN
(SELECT BCSPjmObjekte.Objektnummer FROM BCSPjmObjekte Inner join dbo.BCSPjmObjekteZubehoer ON dbo.BCSPjmObjekte.Objektnummer = dbo.BCSPjmObjekteZubehoer.Objektnummer
where dbo.BCSPjmObjekteZubehoer.Artikelnummer IN ('7711001242', '7711001050', '11000013'))
)
Ich möchte mir jetzt alle Kunden anzeigen lassen, welche ein bestimmtes Zubehör nicht besitzen. mit folgender Abfrage kann ich mir wunderbar anzeigen lassen welche Kunden dieses Zubehör besitzen:
SELECT dbo.KHKAdressen.Referenz, dbo.KHKAdressen.Name1, dbo.KHKAdressen.Name2, dbo.KHKAdressen.LieferStrasse, dbo.KHKAdressen.LieferLand, dbo.KHKAdressen.LieferPLZ, dbo.KHKAdressen.LieferOrt
FROM dbo.KHKAdressen
where dbo.KHKAdressen.Referenz in
(
SELECT dbo.KHKAdressen.Referenz
FROM dbo.KHKAdressen inner JOIN dbo.BCSPjmObjekte ON dbo.KHKAdressen.Adresse = dbo.BCSPjmObjekte.Adresse where dbo.BCSPjmObjekte.Objektnummer IN
(SELECT BCSPjmObjekte.Objektnummer FROM BCSPjmObjekte Inner join dbo.BCSPjmObjekteZubehoer ON dbo.BCSPjmObjekte.Objektnummer = dbo.BCSPjmObjekteZubehoer.Objektnummer
where dbo.BCSPjmObjekteZubehoer.Artikelnummer IN ('7711001242', '7711001050', '11000013'))
)
warum funktioniert das nicht mit NOT IN? Ich erhalte 0 Datensätze zurück. Hab ich nen Denkfehler drin? bin am Verzweifeln :-P
SELECT dbo.KHKAdressen.Referenz, dbo.KHKAdressen.Name1, dbo.KHKAdressen.Name2, dbo.KHKAdressen.LieferStrasse, dbo.KHKAdressen.LieferLand, dbo.KHKAdressen.LieferPLZ, dbo.KHKAdressen.LieferOrt
FROM dbo.KHKAdressen
where dbo.KHKAdressen.Referenz NOT IN
(
SELECT dbo.KHKAdressen.Referenz
FROM dbo.KHKAdressen inner JOIN dbo.BCSPjmObjekte ON dbo.KHKAdressen.Adresse = dbo.BCSPjmObjekte.Adresse where dbo.BCSPjmObjekte.Objektnummer IN
(SELECT BCSPjmObjekte.Objektnummer FROM BCSPjmObjekte Inner join dbo.BCSPjmObjekteZubehoer ON dbo.BCSPjmObjekte.Objektnummer = dbo.BCSPjmObjekteZubehoer.Objektnummer
where dbo.BCSPjmObjekteZubehoer.Artikelnummer IN ('7711001242', '7711001050', '11000013'))
)
Comment