Optimering af Count - 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.
Jeg er faldet på nedenstående:
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) + ', ' +
MAX(CASE seq WHEN 6 THEN Produkt ELSE '' END) + ', ' +
MAX(CASE seq WHEN 7 THEN Produkt ELSE '' END) + ', ' +
MAX(CASE seq WHEN 8 THEN Produkt ELSE '' END) + ', ' +
MAX(CASE seq WHEN 9 THEN Produkt ELSE '' END) + ', ' +
MAX(CASE seq WHEN 10 THEN Produkt ELSE '' END) AS Produkter
FROM (SELECT t1.KundeId, t1.Produkt,
(SELECT COUNT(*)
FROM dbo.BBN_Produkter_m_pris t2
WHERE t2.KundeId = t1.KundeId AND t2.Produkt <= t1.Produkt)
FROM dbo.BBN_Produkter_m_pris t1) D (KundeId, Produkt, seq)
GROUP BY KundeId
og det virker, men problemet er at databasen er så stor at det tager 15 min at køre denne query.
Hvordan kan jeg optimere det?