Я пытаюсь получить 2 значения в одну строку.sql server pivot 2 значения
Пример данных:
recipeID componentID count
9 21 5
12 3 1
12 30 1
12 34 1
12 96 1
27 29 1
27 43 1
28 29 1
28 44 1
Я попробовал 2 шарниров, но я получаю
recipeID 1 2 3 4 11 12 13 14 9 21 NULL NULL NULL 5 NULL NULL NULL 12 NULL NULL NULL 96 NULL NULL NULL 1 12 NULL NULL 34 NULL NULL NULL 1 NULL 12 NULL 30 NULL NULL NULL 1 NULL NULL 12 3 NULL NULL NULL 1 NULL NULL NULL 27 NULL 43 NULL NULL NULL 1 NULL NULL 27 29 NULL NULL NULL 1 NULL NULL NULL 28 NULL 44 NULL NULL NULL 1 NULL NULL 28 29 NULL NULL NULL 1 NULL NULL NULL
Когда я предпочел бы:
recipeID 1 2 3 4 11 12 13 14 9 21 NULL NULL NULL 5 NULL NULL NULL 12 3 30 34 96 1 1 1 1 27 29 43 NULL NULL 1 1 NULL NULL 28 29 44 NULL NULL 1 1 NULL NULL
Есть идеи?
Текущий код:
select * from (
SELECT [recipeID]
,[componentID]
,[count]
,ROW_NUMBER() over(partition by [recipeID] order by ComponentID) rn
,ROW_NUMBER() over(partition by [recipeID] order by ComponentID)+10 rn10
FROM [Recipe_Ingredients] ri_) as ri
PIVOT
(
sum([componentID])
for rn in ([1],[2],[3],[4])) as pvt
PIVOT
(
sum([count])
for rn10 in ([11],[12],[13],[14])) as pvt10
что именно 1,2,3,4, 11,12 и т.д., когда у вас есть количество только 5,1 – mohan111
. counts - уникальные имена столбцов для счета и элементов. 4 - максимальное количество предметов в рецепте – SeanC