20. december 2004 - 15:59Der er
9 kommentarer og 1 løsning
select distinct
Hvordan finder man unikke værdier i 2 (eller flere) tabeller?
I tabel1 har jeg f.eks. 100 ordrer, som er til 3 kunder
I tabel2 har jeg så 1000 ordrer, som er til ca. 30 kunder, 3 af dem er de samme som i tabel1.
Jeg vil gerne en forespørgsel så jeg får vist de 30 forskellige kundenavne der er (tilsammen) i de 2 tabeller, men hvordan? Det er jo intet problem at få vist de 3 kunder fra tabel1, efterfulgt af de 30 kunder fra tabel2 i en forespørgsel, vha. SELECT DISTINCT, men hvordan skal det se ud når jeg nu vil "merge" de 2 tabellers resultat?
SELECT DISTINCT Kundenavn FROM [Table1] WHERE Kundenavn IS NOT NULL UNION ALL SELECT DISTINCT Kundenavn FROM [Table2] WHERE Kundenavn IS NOT NULL
I have tried with this and it returns all the Kundenavn from BOTH tables! Table1 Kundenavn ********* Lars Larsen Hans Nielsen Lene Hansen Jesper Petersen Katrine Ellekilde
Tabel2 Kundenavn ********* Lene Hansen Hans Nielsen Lars Larsen Kirsten Degn Lisbeth Kjær Niels Nielsen
The resultset that I need is this: Lars Larsen Hans Nielsen Lene Hansen Jesper Petersen Katrine Ellekilde Kirsten Degn Lisbeth Kjær Niels Nielsen
But what I get with SELECT DISTINCT . . . UNION ALL, is this: Lars Larsen Hans Nielsen Lene Hansen Jesper Petersen Katrine Ellekilde Lene Hansen Hans Nielsen Lars Larsen Kirsten Degn Lisbeth Kjær Niels Nielsen
The Kundenavn which is the same in both tables are "returned" twice! And I have 8 tables that I SELECT Kundenavn from! And I use the field Kundenavn as the name of my spreadsheets, but I don't want to (read: can't!) have spreadsheets that have the same name in a workbook.
Terry: Du får da stadig samme kunder med fra begge tabeller! Det rigtige må være: SELECT DISTINCT SELECT Kunde From Table1 UNION SELECT Kunde From Table2 Atlså at du samler alle kunder i én klamamse og efterfølgende "kører" DISTINCT.
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.