|
2011/11/01(Tue) 14:17:52 編集(投稿者)
■No62756 (かこ さん) に返信
提示のSQLを修正するなら、TBL(またはこのエイリアス)を修飾する必要があります。
select T.CODE, T.VERSION, count(T.CODE) from TBL T left outer join ( select CODE C, VERSION V, count(CODE) CNT, from TBL where VERSION <> 'BASE' group by CODE, VERSION ) cntCD on T.CODE = cntCD.C where T.VERSION = 'BASE' group by T.CODE, T.VERSION ;
ただし、これではcntCDのVERSION等はSELECTされません。 (実際にテーブルを作成して確認しているわけではないので...)
■No62757 (shu さん) に返信
> Select CODE, SUM(CASE VERSION WHEN 'BASE' THEN 1 ELSE 0 END) C1 > , SUM(CASE VERSION WHEN 'BASE' THEN 0 ELSE 1 END) C2 > From TBL > Group By CODE
質問者提示のSQLでは、VERSIONはGroup Byのメンバですので、VERSION毎の集計を行いたいことがうかがえますが、 上記ではVERSIONが'BASE'か否かの集計しか行えません。
|