Avatar billede avalon116 Nybegynder
20. november 2005 - 16:54 Der er 13 kommentarer og
1 løsning

select distinct

Jeg har en tabel (t1) der skal joines (left join) med en anden (t2)for at få en værdi herfra. Problemet er, at der er flere poster i t2, der passer med nogle af posterne i t1. Alle disse vil dog have den samme værdi, så det gør ikke så meget. men med alm. left join får jeg flere poster som resultat af forespørgslen, end der er i t1. Det dur ikke. Men med select distinct for jeg for få, for der er enkelte poster i min t1, der er ens.

Hvordan får jeg hentet værdien i t2?
Avatar billede terry Ekspert
20. november 2005 - 17:07 #1
DISTINCT should give you waht you want as long as the fields you are selecting in T2 are the same (values) If any values in the fields you select in T2 for a single record in T1 are different then they are no longer DISTINCT
Avatar billede avalon116 Nybegynder
20. november 2005 - 17:15 #2
den forstår jeg ikke Terry

Hvis jeg ikke har Distinct på, så giver forespørgslen flere records end t1. Hvis jeg har distinct på, så giver forespørgslen færre records end der er i t1. Men jeg vil have nøjagtig det antal records, som der er i t1
Avatar billede avalon116 Nybegynder
20. november 2005 - 17:28 #3
jeg er virkelig virkelig desperat
Avatar billede terry Ekspert
20. november 2005 - 17:30 #4
can you sen me your dB?

eksperten@NOSPAMsanthell.dk
remove NOSPAM
Avatar billede avalon116 Nybegynder
20. november 2005 - 17:35 #5
laver lige et udsnit, pakker og sender
Avatar billede terry Ekspert
20. november 2005 - 17:35 #6
are you sure you have an OUTER join? If you use an INNER JOIN then there must be realetd records in both tables.
Avatar billede terry Ekspert
20. november 2005 - 17:38 #7
Ah! are you saying that you have records in t1 that are the same? If so then include the primary key and it is no longer DISTINCT
Avatar billede terry Ekspert
20. november 2005 - 17:44 #8
You should never have records in your table which are the same. Just add an autonumber and your over that problem.
Avatar billede terry Ekspert
20. november 2005 - 18:19 #9
you dont have a primary key on T1! If you add an autonumber then you will always have unique records, then DITINCT will work.
Avatar billede terry Ekspert
20. november 2005 - 18:19 #10
DITINCT = DISTINCT
Avatar billede terry Ekspert
20. november 2005 - 18:35 #11
if you dont want to add a primary key then you can use sub selects


SELECT t1.Pri_Komnr, t1.Pri_Vejkode, t1.Pri_Husnr, t1.Pri_Bogstav, t1.Pri_Etage, t1.Pri_Side, (SELECT TOP 1 [OMRAADENR] FROM q2 WHERE [t1]![Pri_komnr] = [q2]![Kommunenr] AND  [t1]![Pri_Vejkode] = [q2]![VEJ_KODE] AND  [t1]![Pri_HusNr] = [q2]![Husnummer]) AS OMR
FROM t1;
Avatar billede avalon116 Nybegynder
20. november 2005 - 18:36 #12
Ja selvf. et autonummereringsfelt ville løse det, det havde jeg slet ikke tænkt på. Genialt tak.
Avatar billede avalon116 Nybegynder
20. november 2005 - 18:36 #13
Hov Terry smid lige et svar
Avatar billede terry Ekspert
20. november 2005 - 18:38 #14
:o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester