Jeg skal finde kunder, som har bestilt SAMTLIGE annoncetyper i 2002.
Har flg. tabeller: Bestillinger, Annoncer, Annoncetyper, Kunder.
Har bakset følgende sammen: SELECT K.Tlf FROM Kunder K WHERE NOT EXISTS (SELECT * FROM Annoncetyper AT WHERE NOT EXISTS (SELECT * FROM Annoncer A WHERE NOT EXISTS (SELECT * FROM Bestillinger B WHERE K.Tlf = B.Tlf AND (A.AnnonceNr = B.AnnonceNr AND AT.Annoncetype = A.Annoncetype AND B.Bestillingsdato = 2002))));
Jeg får ikke det ønskede... Er det fordi jeg skal joine noget således at jeg kun har 2*NOT EXISTS?
Ja, du skal have sat dine ting sammen, så du kun har 2*not exist, heraf navnet dobbelt negation.
Ud fra det du har skrevet virker følgende måske, men det er tanken bag der tæller, måske skal du selv lige redigere lidt i den
SELECT K.tlf FROM Kunder K WHERE NOT EXISTS
(SELECT * FROM Annoncetype AT WHERE NOT EXISTS
(SELECT * FROM Annonce A, bestillinger B WHERE K.tlf=B.Tlf AND A.AnnonceNr = B.AnnonceNr AND AT.annoncetype=A.annoncetype AND B.bestillingsdato = 2002));
Rod lidt videre med ovenstående og tilpas den hvis den ikke virker
look at the problem from another perspective. You know how many "Annoncetyper" you have for 2002. and you can find the number each customer has ordered. If they are the same then you have found what you want.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.