0

我有一个名为“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(无论如何我不明白如何用于此目的!)。

到目前为止,我只能得出以下结论:

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

任何人都可以帮助我吗?

4

1 回答 1

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
于 2012-06-13T11:50:25.813 回答