
Visual Studio Express 2013 for Webでデータベースアプリを作成しています。
例えば、
Person表
IdS_IdC_IdZ
11212
2222
323NULL
444NULL
54444
6555
7111
8167
9777
10666
1115NULL
12455
13455
14678
のようなデータがあり、横軸S_Id、縦軸C_Idの数、の積み上げ棒グラフ(StackedColumn)
(S_Id毎にC_Idの数の内訳を示したグラフ。カウント対象はZがNULLでないものだけ)
を作成するには、どのようなSQL SELECT文を書けばよいでしょうか。
目的とする要素数は、
SELECT S_Id, C_Id, COUNT(Z)
FROM Person
GROUP BY S_Id, C_Id;
で出るのですが、
積み上げ棒グラフのためには、
SELECT S_Id, C_Id=1の数(ZがNULLでない), C_Id=2の数(ZがNULLでない), C_Id=3の数(ZがNULLでない), ...
FROM Person
GROUP BY S_Id;
のような形にする必要があるようで、うまく書けません。
COUNTで、ZがNULLでなくかつC_Id=1のものをカウントする、というようなことができればよいのですが。

No.2ベストアンサー
- 回答日時:
こういうことでしょうか?
select S_Id
, count(case C_Id when 1 then 1 else null end) Count_1
, count(case C_Id when 2 then 1 else null end) Count_2
, count(case C_Id when 3 then 1 else null end) Count_3
, count(case C_Id when 4 then 1 else null end) Count_4
, count(case C_Id when 5 then 1 else null end) Count_5
, count(case C_Id when 6 then 1 else null end) Count_6
, count(case C_Id when 7 then 1 else null end) Count_7
from Person
where Z is not null
group by S_Id;
C_Idの種類分だけ列記しなくてはいけませんが・・
No.1
- 回答日時:
> COUNTで、ZがNULLでなくかつC_Id=1のものをカウントする、
単にWhereで良いのでは?
SELECT S_Id, C_Id, COUNT(Z)
FROM Person
WHERE Z ls Not Null
AND C_Id = 1
GROUP BY S_Id, C_Id;
この回答への補足
ご回答ありがとうございます。
しかし、積み上げ棒グラフのためには、
SELECT S_Id, C_Id=1の数(ZがNULLでない), C_Id=2の数(ZがNULLでない), C_Id=3の数(ZがNULLでない), ...
FROM Person
GROUP BY S_Id;
のような形にする必要があるようで、「ZがNULLでないC_Id=xの数」を一語でSELECTに列挙する必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
datetime型でNULL値を入れたい。
-
/dev/nullについて
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
エラー 1068 (42000): 複数の主...
-
Outlook 送受信エラー
-
SQLで特定の項目の重複のみを排...
-
エクセルの関数について教えて...
-
1日に1人がこなせるプログラム...
-
Excel再起動でアドインのタブが...
-
クエリ表示と、ADOで抽出したレ...
-
PL/SQLの変数について
-
外部参照してるキーを主キーに...
-
for whichの使い方
-
select文の書き方「半角カナ+...
-
VBAでファイルオープン後にコー...
-
INSERT文でフィールドの1つだ...
-
EXISTSを使ったDELETE文
-
SELECT 文 GROUP での1件目を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
datetime型でNULL値を入れたい。
-
多くの選択項目を処理(SELECT)...
-
並べ替え(Access)
-
ユニークなデータの件数を取り...
-
/dev/nullについて
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
外部参照してるキーを主キーに...
-
エクセルで最後の文字だけ置き...
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
-
Outlook 送受信エラー
-
エクセルの関数について教えて...
-
for whichの使い方
-
EXISTSを使ったDELETE文
-
INSERT文でフィールドの1つだ...
-
access2021 VBA メソッドまたは...
-
UPDATE文のWHERE条件に他のテー...
-
SQLで列名を変数にできないでし...
-
1日に1人がこなせるプログラム...
おすすめ情報