title image


Smiley Re: SELECT über mehrere Zeilen
1.) Welche Kunden haben Produkte B1,B2,...,Bn gekauft?

SELECT DISTINCT k.knr, k.name

FROM kunden AS K

INNER JOIN einkauf AS e ON k.knr=e.knr

WHERE e.produkt in (B1, B2, ..., Bn);



2.) Welche Kunden haben NUR Produkte B1,B2,...,Bn gekauft?

SELECT DISTINCT k.knr, k.name

FROM kunden AS K

INNER JOIN einkauf AS e ON k.knr=e.knr

WHERE e.produkt IN (B1, B2, ..., Bn) AND

NOT EXISTS (SELECT n.knr

FROM einkauf AS n

WHERE n.produkt NOT IN (B1, B2, ..., Bn));



3.) Welche Kunden haben GENAU Produkte B1,B2,...,Bn gekauft?



Das ist mehrdeutig. Wenn der Kunde MINDESTENS B1-Bn gekauft hat:

SELECT DISTINCT k.knr, k.name

FROM kunden AS K

INNER JOIN einkauf AS b1 ON k.knr=b1.knr

INNER JOIN einkauf AS b2 ON k.knr=b2.knr

...

INNER JOIN einkauf AS bn ON k.knr=bn.knr

WHERE b1.produkt = B1 AND

b2.produkt = B2 AND

...

bn.produkt = Bn;



Wenn der Kunde GENAU NUR B1-Bn gekauft hat:

SELECT DISTINCT k.knr, k.name

FROM kunden AS K

INNER JOIN einkauf AS b1 ON k.knr=b1.knr

INNER JOIN einkauf AS b2 ON k.knr=b2.knr

...

INNER JOIN einkauf AS bn ON k.knr=bn.knr

WHERE b1.produkt = B1 AND

b2.produkt = B2 AND

...

bn.produkt = Bn AND

NOT EXISTS (SELECT n.knr

FROM einkauf AS n

WHERE n.produkt NOT IN (B1, B2, ..., Bn));





4.) Welche Kunden haben NICHT Produkte B1,B2,...,Bn gekauft?

SELECT k.knr, k.name

FROM kunden AS K

WHERE NOT EXISTS (SELECT n.knr

FROM einkauf AS e

WHERE e.produkt IN (B1, B2, ..., Bn));



diu vive floreque.
Spockus

erreicht am 04.03.2008 09:47:23

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: