select [Interne Nummer], Artikelnummer, Artikelname, Merkmalname, Merkmalwert1, Merkmalwert2, Merkmalwert3, Merkmalwert4, Merkmalwert5, Merkmalwert6, Merkmalwert7, Merkmalwert8, Merkmalwert9, Merkmalwert10, Merkmalwert11, Merkmalwert12, Merkmalwert13, Merkmalwert14, Merkmalwert15, Merkmalwert16, Merkmalwert17, Merkmalwert18, Merkmalwert19, Merkmalwert20, Merkmalwert21, Merkmalwert22, Merkmalwert23, Merkmalwert24, Merkmalwert25, Merkmalwert26, Merkmalwert27, Merkmalwert28, Merkmalwert29, Merkmalwert30
from
(
SELECT
tartikel.kArtikel AS [Interne Nummer],
tartikel.cArtNr AS Artikelnummer,
tartikel.cName AS Artikelname,
tMerkmal.cName AS Merkmalname,
tMerkmalWertSprache.cWert AS Merkmalwert,
'Merkmalwert'+cast(row_number() over(partition by tartikel.cArtNr, tMerkmal.cName
order by tMerkmal.cName) as varchar(10)) seq
FROM tartikel
INNER JOIN tArtikelMerkmal
ON tartikel.kArtikel = tArtikelMerkmal.kArtikel
INNER JOIN tMerkmal
ON tArtikelMerkmal.kMerkmal = tMerkmal.kMerkmal
INNER JOIN tMerkmalWertSprache
ON tArtikelMerkmal.kMerkmalWert = tMerkmalWertSprache.kMerkmalWert
WHERE tMerkmalWertSprache.kSprache = '1'
) d
pivot
(
max(Merkmalwert)
for seq in (Merkmalwert1, Merkmalwert2, Merkmalwert3, Merkmalwert4, Merkmalwert5, Merkmalwert6, Merkmalwert7, Merkmalwert8, Merkmalwert9, Merkmalwert10, Merkmalwert11, Merkmalwert12, Merkmalwert13, Merkmalwert14, Merkmalwert15, Merkmalwert16, Merkmalwert17, Merkmalwert18, Merkmalwert19, Merkmalwert20, Merkmalwert21, Merkmalwert22, Merkmalwert23, Merkmalwert24, Merkmalwert25, Merkmalwert26, Merkmalwert27, Merkmalwert28, Merkmalwert29, Merkmalwert30)
) piv