05. september 2008 - 09:47Der er
5 kommentarer og 1 løsning
Samle flere kolloner i en
Jeg har en tabel hvor jeg har alle de produkter der tilhører et kundenummer, men der er en ny linie for hvert produkt. Jeg vil gerne lave et view der viser mig alle de produkter en kunde har, men på samme linie. Eventuelt kommasepareret i en kolonne.
Jeg har ikke mulighed for at lave det i applikationskoden da det skal laves til et system der ikke er Open Source.
Buzzzz: Kan du give mig et eksempel på hvordan jeg skulle lave den Custom Aggregate function? Hvis nu vi siger at vi bare har kollonerne "KundeID" og "Produkt".
Tak for linksene. Det hjalp og jeg har fundet en løsning der virker. Læg et svar :-)
Her er den lidt snavsede løsning som jeg fandt frem til:
SELECT KundeID, MAX(CASE seq WHEN 1 THEN Produkt ELSE '' END) + ', ' + MAX(CASE seq WHEN 2 THEN Produkt ELSE '' END) + ', ' + MAX(CASE seq WHEN 3 THEN Produkt ELSE '' END) + ', ' + MAX(CASE seq WHEN 4 THEN Produkt ELSE '' END) + ', ' + MAX(CASE seq WHEN 5 THEN Produkt ELSE '' END) + ', ' + 'osv... indtil jeg har nok cases til at have alle produkterne....
MAX(CASE seq WHEN 20 THEN Produkt ELSE '' END)
FROM (SELECT t1.KundeId, t1.Produkt, (SELECT COUNT(*) FROM dbo.view_TeleKonto_Abonnementer t2 WHERE t2.KundeId = t1.KundeId AND t2.Produkt <= t1.Produkt) FROM dbo.view_TeleKonto_Abonnementer t1) D (KundeId, Produkt, seq) GROUP BY KundeId;
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.