Rækker til kolonner
HejJeg har en tabel med x antal produkter, med y antal egenskaber.
fx
ID | Beskrivelse_id | Beskrivelse | Sprog
1 | 500 | Rød | DK
1 | 500 | Red | US
1 | 521 | 230V | DK
2 | 500 | Hvid | DK
jeg vil gerne have outputtet så hver ID har en række med
ID | 500 | 521 | Sprog
1 | Rød | 230v |DK
Der er rigtig mange beskrivelses_id'er (ca 5000) , men jeg skal kun bruge ca 30.
Ved ikke om nedenstående hjælper eller det bare er total forvirring?
jeg har prøvet denne
https://stackoverflow.com/questions/15745042/efficiently-convert-rows-to-columns-in-sql-server
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(Beskrivelses_id
from produkter
group by Beskrivelses_id, id
having beskrivelses_id in ('500','501','322') --etc
order by id
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = N'SELECT ' + @cols + N' from
(
select beskrivelse, beskrivelses_id
from produkter
-- jeg har prøvet med en where beskrivelses_id in her, men det fejler
) x
pivot
(
max(beskrivelse)
for Beskrivelses_id in (' + @cols + N')
) p '
exec sp_executesql @query;
men jeg får følgende fejl
Msg 1056, Level 15, State 1, Line 1
The number of elements in the select list exceeds the maximum allowed number of 4096 elements.
Msg 102, Level 15, State 1, Line 6
Incorrect syntax near 'x'.