- ベストアンサー
count集計の結果が0の場合でも表示したい方法
- SQLServerのクエリアナライザを使用して、count集計の結果が0の場合でも表示する方法について教えてください。
- 具体的には、以下のようなテーブルとSQL文がありますが、結果が0の場合も表示したいです。
- お願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まったく存在しないものを検索するというのは無理な話なので、他にコード管理のテーブルを作ったりunionで作ったりして、その後joinするしかありません。 (1)表定義&データ例 create table table1 (fID smallint, fName varchar(8), fItemCD char(2)); insert into table1 values(1,'山田','01'); insert into table1 values(2,'木村','03'); insert into table1 values(3,'田中','04'); insert into table1 values(4,'佐藤','02'); insert into table1 values(5,'高橋','03'); insert into table1 values(6,'川島','03'); insert into table1 values(7,'山下','06'); create table fItemCD_Master (fItemCD char(2), fItemName varchar(20)); insert into FItemCD_Master values('01','A'); insert into FItemCD_Master values('02','BB'); insert into FItemCD_Master values('03','CCC'); insert into FItemCD_Master values('04','DDDD'); insert into FItemCD_Master values('05','EEEEE'); insert into FItemCD_Master values('06','FFFFFF'); insert into FItemCD_Master values('07','GGGGGGG'); insert into FItemCD_Master values('08','HHHHHHHH'); insert into FItemCD_Master values('09','IIIIIIIII'); insert into FItemCD_Master values('10','JJJJJJJJJJ'); (2)検索 select M.fItemCD,count(T.fItemCD) as Rslt from fItemCD_Master as M left join table1 as T on M.fItemCD=T.fItemCD where M.fItemCD in ('04','05','06') group by M.fItemCD;
お礼
遅くなりましたが、 大変参考になりました。 ありがとうございました。 結局ないものをカウントすること自体がナンセンスなのですね。。。