我正在尝试将 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 个支点,但我得到了
配方ID 1 2 3 4 11 12 13 14 9 21 空 空 空 5 空 空 空 12 空 空 空 96 空 空 空 1 12 空 空 34 空 空 空 1 空 12 空 30 空 空 空 1 空 空 12 3 空 空 空 1 空 空 空 27 空 43 空 空 空 1 空 空 27 29 空 空 空 1 空 空 空 28 空 44 空 空 空 1 空 空 28 29 空 空 空 1 空 空 空
当我更喜欢:
配方ID 1 2 3 4 11 12 13 14 9 21 空 空 空 5 空 空 空 12 3 30 34 96 1 1 1 1 27 29 43 无 无 1 1 无 无 28 29 44 无 无 1 1 无 无
有任何想法吗?
当前代码是:
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