14. juni 2000 - 22:10Der er
16 kommentarer og 1 løsning
Trække en tabel fra en anden
Tabel 1 indeholder felterne kundenummer, navn, postnummer og postdistrikt. Det gør Tabel 2 også. Der er overlap således at en del kunder findes i begge tabeller. Nu vil jeg gerne lave en forespørgsel, der viser de kunder, der KUN findes i tabel 1. Lyder simpelt, synes jeg, men jeg kan ikke hitte ud af det - hjælp!
Prøv denne query. Jeg antager at Kundenummer er nøglen:
SELECT Tabel1.Kundenummer, Tabel1.Navn, Tabel1.Postnr, Tabel1.Postdistrikt, Tabel2.Kundenummer FROM Tabel1 LEFT JOIN Tabel2 ON Tabel1.Kundenummer = Tabel2.Kundenummer WHERE (((Tabel2.Kundenummer) Is Null));
SELECT kunde1.* FROM kunde1 LEFT JOIN kunde2 ON (kunde1.postdistrikt = kunde2.postdistrikt) AND (kunde1.postnummer = kunde2.postnummer) AND (kunde1.navn = kunde2.navn) AND (kunde1.kundenummer = kunde2.kundenummer) WHERE (((kunde2.kundenummer) Is Null) AND ((kunde2.navn) Is Null) AND ((kunde2.postnummer) Is Null) AND ((kunde2.postdistrikt) Is Null));
Jeg har sat et par linjeskift ind for at lette læsbarheden. kunde1 svarer til din tabel1, kunde2 = tabel2
Lav en forespørgsel i designvisning. Undlad at tilføje nogle tabeller men højreklik i det felt tabellerne normalt er placeret ( den øverste halvdel af billedet ). Vælg herefter SQL og indsæt nedenstående script. :
(SELECT * FROM Tabel1) UNION (SELECT * FROM Tabel2); GROUP BY Tabel1.kundenummer;
Rigtig smart, men min Access 97 siger, at ordet EXCEPT er en syntaxfejl. Det er heller ikke nævnt i hjælpen - desværre, for det du skriver, er lige præcis, det jeg vil. Er det mon med i Access 2000?
Det måtte jeg jo lige slå op. Det viser sig at EXCEPT ikke er understøttet af alle databaser (åbentbart heller ikke access). Istedet må du lave en sql der ligner følgende:
SELECT * FROM Table1 T1 WHERE NOT EXISTS (SELECT * FROM Table2 T2 WHERE T1.kundenummer=T2.kundenummer AND T1.navn=T2.navn AND T1.postnummer=T2.postnummer AND T1.postdistrikt=T2.postdistrikt)
Bingo! En tungt kørende forespørgsel, men den virker!
Synes godt om
Ny brugerNybegynder
Din løsning...
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.