Avatar billede telep Nybegynder
16. oktober 2009 - 11:22 Der er 1 kommentar og
1 løsning

Udtræk flere værdier til et felt

Hej

Jeg har en udfordring!

Jeg har 2 tabeller, vi kalder dem ordre og ordre_linie.
Én ordre kan selvsagt have flere ordre_linier.

I tabellen ordre_linie har jeg et felt der hedder produkt_id.

Nu vi jeg gerne have et udtræk, hvor jeg får alle mine ordre ud, med alle produkt_id'erne fra ordre_linie, men kun 1 row per ordre. Produkt_id'erne skal komme efter ordre.ordre_id og være kommasepareret.

Hvis en ordre med id 1 fx har to ordre_linier, med hhv, produkt_id 10 og 20, vil jeg altså gerne kunne trække følgende ud:

ordre_id    produkt_id
1            10,20


/telep
Avatar billede telep Nybegynder
16. oktober 2009 - 11:58 #1
select o.ordre_id,
    (select ol.produkt_id + ','
    from ordre_linie ol
    where ol.ordre_id = o.ordre_id
    order by ol.produkt_id
        FOR XML PATH('')) as Produkter
from
    ordre o
Avatar billede Syska Mester
16. oktober 2009 - 12:18 #2
En mulighed var også at lave din Aggregate funktion som laver en konkatenering af dine id's ...

// ouT

Så din ville få en sql ala:

select
o.ordre_id, concat(ol.produkt_id) as Produkter
from
    ordre 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
Computerworld tilbyder specialiserede kurser i database-management

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