以下のようにテーブルトランザクションとテーブル製品があります。各トランザクションには複数の製品があります。
ProductId Name
1 ABC
2 DEF
3 GHI
各トランザクションでは、複数の製品が販売される可能性があります。
TransactionId ProductSoldInDept1 ProductSoldinDept2 ProductSoldinDept3
1 1 null null
2 1 2 null
3 3 1 null
4 2 3 1
レポートの生成を計画していますが、次のような結果を得たいと考えています。
これは、ID でグループ化された各部門ごとの販売された製品の数を示しています
期待される結果 :
ProductID Department1ProdCount Department2ProdCount Department3ProdCount
1 2 1 1
2 1 1 0
3 1 1 0
ここまで取得できます。これは、productid である特定の製品のカウントを取得するためのクエリです: 1 ここでグループを使用する方法を知りたいです:
select Count(CASE WHEN ProductSoldInDept1 = 1 THEN 1 END) ,
Count(CASE WHEN ProductSoldInDept2 = 1 THEN 1 END) ,
Count(CASE WHEN ProductSoldInDept3 = 1 THEN 1 END)
from Table1