
基本的なことですみません。
環境はSQLServerのクエリアナライザを使用してます。
内容は題名のとおりです。
例えば
table1
fID fName fItemCD
1 山田 01
2 木村 03
3 田中 04
4 佐藤 02
5 高橋 03
6 川島 03
7 山下 06
のようなものがあって、以下のSQL文を処理すると
select fItemCD, count(*) as Rslt from table1
where fItemCD in ('04','05','06')
group by fItemCD
結果
fItemCD Rslt
04 1
06 1
が返ってきます
これを
fItemCD Rslt
04 1
05 0
06 1
と結果0件のものも表示したいのですが、いい方法ありますか?
よろしくお願い致します。
No.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;
遅くなりましたが、
大変参考になりました。
ありがとうございました。
結局ないものをカウントすること自体がナンセンスなのですね。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
テーブルからのselectにおいてデータの有無により結果をわけたい
PostgreSQL
-
SQL文で、合計が0のレコードを表示させないようにしたい。
SQL Server
-
SQLでSUMなどの関数でデータが無い時に0を返したい。
Oracle
-
4
GROUP BYを行った後に結合したい。
Oracle
-
5
access・カウント結果がゼロでも、「0」を表示させるには?
その他(データベース)
-
6
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
7
count関数の値をwhere句で使用する方法について
MySQL
-
8
GROUP BYを使用したCOUNT
その他(データベース)
-
9
単一グループのグループ関数ではありません。
Oracle
-
10
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
11
SELECT 文 GROUP での1件目を取得
SQL Server
-
12
データベースのINT型項目にNULLはNG?
MySQL
-
13
count(*)で取得した値をJAVAの変数に代入するには?
Java
-
14
SELECT/別テーブルのレコード数も取得したい
MySQL
-
15
SQL文のCOUNTの戻り値は?
その他(データベース)
-
16
flush()とclose()について
Java
-
17
select文の実行結果に空白行を入れたい
MySQL
-
18
SQLで条件指定結合をしたいがNULLも表示したい
その他(データベース)
-
19
SQL文のwhere条件文で使う <> の意味はなんですか
その他(データベース)
-
20
構造が異なる二つのテーブルをunionで結ぶには?
MySQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
Unionの結果全体をOrder By し...
-
5
SQLでフィールドの順番を変更し...
-
6
SQL server改行コード
-
7
自作関数の方がパフォーマンス...
-
8
JOINで1つのテーブルに空白があ...
-
9
SQL Server 2005 Express で CD...
-
10
'internal' のシステム メモリ...
-
11
差し込み後、元データを変更し...
-
12
SELECT 文 GROUP での1件目を...
-
13
bubbleに自分で書いたコードを...
-
14
ExcelのVBAコードについて教え...
-
15
ExcelのVBAコードについて教え...
-
16
外部参照してるキーを主キーに...
-
17
Chromeのデベロッパーツール プ...
-
18
select文のwhere句に配列を入れ...
-
19
特定条件でWHERE句の条件を変更...
-
20
SQLによる"あいうえお"順でソー...
おすすめ情報
公式facebook
公式twitter