Avatar billede Newline Nybegynder
25. juni 2014 - 22:51 Der er 9 kommentarer og
1 løsning

SQL - Join to tabeller med hvert match i egen række

Jeg har behov for at lave en JOIN mellem to tabeller i min database. Første tabel angiver en registrering, hvor der indgår SET ID der refererer til et sæt værdier i tabel nr. 2.

I tabellerne nedenfor laver jeg JOIN på Trans.SET ID = ID.SET ID.

Jeg har behov for at kunne samle transaktionen og værdierne på en linje der ser ud som følger:

Bruger | Afdeling | SET ID | A | B | C
ALF | FIN | 2344 |    |    |
ING | ØKO | 3243 | DG | GD | BJ
TOM | ØKØ | 3423 | EF |    |
IGN | ADM | 2343 |    |    | ER   

------------------ MINE TABELLER----------------

Trans tabel:
Bruger | Afdeling | SET ID
ALF | FIN | 2344
ING | ØKO | 3243
TOM | ØKØ | 3423
IGN | ADM | 2343


ID tabel:
SET ID | CODE | Værdi
3423 | A | EF
3243 | A | DG
3243 | B | GD
3243 | C | BJ
2343 | C | ER
Avatar billede arne_v Ekspert
26. juni 2014 - 04:01 #1
proev:

SELECT trans.bruger,trans.afdeling,trans.setid,a.value AS a,b.value AS b,c.value AS c
FROM trans
LEFT JOIN id a ON trans.setid=a.setid AND a.code='A'
LEFT JOIN id b ON trans.setid=b.setid AND b.code='B'
LEFT JOIN id c ON trans.setid=c.setid AND c.code='C'
Avatar billede Slettet bruger
26. juni 2014 - 09:30 #2
Avatar billede Newline Nybegynder
28. juni 2014 - 12:40 #3
Tusind tak. Det har løst det for mig, så jeg kan komme videre med processen. Point fra mig.
Avatar billede Newline Nybegynder
28. juni 2014 - 12:44 #4
Tak for denne også. Den vil jeg sørge for at dyrke.
Avatar billede arne_v Ekspert
28. juni 2014 - 13:47 #5
Nu tog du altsaa selv point .............
Avatar billede Newline Nybegynder
30. juni 2014 - 09:22 #6
Det er jeg ked af. Kan jeg rette det?

Alternativt kan du svare på denne tråd og her kan jeg give dig point. Tråden er ikke aktuel længere, da jeg af andre veje blev opmærksom på det uhensigtsmæssige i den.

http://www.eksperten.dk/spm/986576
Avatar billede montago Praktikant
30. juni 2014 - 14:15 #7
utroligt at point systemet ikke er blevet bedre i løbet af de sidste 10 år....
Avatar billede arne_v Ekspert
30. juni 2014 - 16:30 #8
Eneste maade at rette op paa er metoden i:

http://www.eksperten.dk/faq#faq-5-3
Avatar billede friiiiis Novice
15. august 2014 - 13:52 #9
Hej,

er der ikke een der kan foreklare mig SQL stement herover??

Jeg forstår ikke ",a.value AS a,b.value AS b,c.value AS c"

1) er a, b og c nye tabeller ?
2) hvor kommer ".value" fra? der er da ikke defineret nogen kolonner med titlen value?
3) hvordan "hopper" værdien fra kolonne værdi ind i kolonne A, B eller C alt efter værdien i code? Altså hvad er det for en funktion der gør det?
Avatar billede arne_v Ekspert
15. august 2014 - 15:43 #10
re 1)

tabellen id bruges 3 gange med 3 forskellige alias

felrerne faar saa ogsaa alias (og det virker nok ikke med samme alias som for tabellerne!)

re 2)

jeg bryder mig ikke om danske bogstaver i felt navne

:-)


re 3)

det er self join mekanismen som goer det
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

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