Ich habe den Tisch
Mögen
ID, ID_CLIENT, ID_TYPE, PRICE
Wie kann ich eine neue "CTE"-Tabelle erstellen, in der ich 1 Datensatz für jeden ID_Client habe. Und für einige(5) ID_TYPE eine priceType-Spalte.
Mögen
ID_CLIENT, PRICEFORID_TYPE1, PRICEFORIDTYPE_2,.......
1 10 15
2 20 30
Mein erster Gedanke war, eine PIVOT-Tabelle zu verwenden, aber dann wurde ich veröffentlicht, ich kann nicht nach ID_TYPE filtern.
Angenommen, Sie benötigen DYNAMIC
Beispiel
Declare @SQL varchar(max) = '
Select *
From (
Select [ID_CLIENT]
,[Item] = concat(''PRICEFORID_TYPE'',[ID_TYPE])
,[Price]
From YourTable
) A
Pivot (max([Price]) For [Item] in (' + Stuff((Select Distinct ','+QuoteName(concat('PRICEFORID_TYPE',[ID_TYPE]))
From YourTable
Order By 1
For XML Path('')),1,1,'') + ') ) p'
Exec(@SQL);
--Print @SQL
Kehrt zurück
Das generierte SQL sieht so aus
Select *
From (
Select [ID_CLIENT]
,[Item] = concat('PRICEFORID_TYPE',[ID_TYPE])
,[Price]
From YourTable
) A
Pivot (max([Price]) For [Item] in ([PRICEFORID_TYPE1],[PRICEFORID_TYPE2]) ) p
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen