私は以下のTypeStatusDetails
テーブルを持っています。この表は異なるTypeID
です。各タイプは、最大4つのStatusID
を有することができる(すなわち、例えば、TypeID
3は、3つだけを有する。StatusID
)。SQLでPIVOTを使用
RecordCountは、特定のStatusIDのレコードの数。
各タイプに応じて、私はStatusIDと、ステータスごとのようでRecordCountを表示する: (。TYPE_1用など3保留レコード)が
---------------------------------------------------------------
TypeID Type StatusID StatusName RecordCount
---------------------------------------------------------------
1 Type_1 1 Pending 3
1 Type_1 2 In Process 2
1 Type_1 3 Completed 1
1 Type_1 4 Invalid 1
2 Type_2 1 Pending 4
2 Type_2 2 In Process 5
2 Type_2 3 Completed 6
2 Type_2 4 Invalid 1
3 Type_3 1 Pending 1
3 Type_3 2 In Process 1
3 Type_3 3 Completed 1
私は、次の表のようになりたいです。
--------------------------------------------------------------------------------
Type Type Status Pending Status InProcess Status Completed Status Invalid ID ID Count ID Count ID Count ID Count
for for for for
Pending InProcess Completed Invalid
--------------------------------------------------------------------------------
1 Type_1 1 3 2 2 3 1 4 1
2 Type_2 1 4 2 5 3 6 4 1
3 Type_3 1 1 2 1 3 1 4 0
私は、クエリ
SELECT *
FROM (
SELECT
TypeID,Type,StatusName,RecordCount
FROM #TypeStatusDetails
) as s
PIVOT
(
SUM(RecordCount)
FOR StatusName IN ([Pending],[In Process],[Completed],[Invalid])
)AS pvt
次使用していた。しかし、私はピボットでそれを組み合わせて、各StatusNameごとにStatusId列を取得するために問題を抱えています。
誰もがこれで私を助けてくださいことはできますか?
あなたのRDMBSであるSQL ServerのI AS StatusName = '無効' THENのRecordCount ELSE 0 END)仮定? –