我有一个名为'MyTable'的表格,如下所示:
ID | Item | Type | Value
1 | 100 | 60 | 37
2 | 100 | 72 | 24
3 | 200 | 60 | 18
4 | 300 | 60 | 43
5 | 300 | 72 | 76
我想整理一个MS SQL查询以获得以下内容:
Item | Type_60 | Type_72
100 | 37 | 24
200 | 18 | NULL
300 | 43 | 76
我很可能不允许使用PIVOT(无论如何我不明白如何使用PIVOT!)。
到目前为止,我只能提出以下内容:
select Item,
CASE Type WHEN 60 THEN Value END as 'Type_60',
CASE Type WHEN 72 THEN Value END as 'Type_72'
from MyTable
但这给了我以下内容:
Item | Type_60 | Type_72
100 | 37 | NULL
100 | NULL | 24
200 | 18 | NULL
300 | 43 | NULL
300 | NULL | 76
任何人都可以打发我吗?
答案 0 :(得分:0)
你几乎就在那里,只需在最后添加group by Item
,然后将case
包装在一个聚合中:
select Item,
max(CASE Type WHEN 60 THEN Value END) as 'Type_60',
max(CASE Type WHEN 72 THEN Value END) as 'Type_72'
from MyTable
group by Item