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 に答える