SQL初心者です。
Access2013を使用して開発を行っております。
ファイルの拡張子は「.mdb(2002 -2003 ファイル形式)」です。
以下のようなテーブルがあります。
一時間ごとに回数を集計しております。
【test_table】
[ID] [日付] [時間] [カテゴリ] [個数]
01 20150909 00 1 10
01 20150909 00 2 5
01 20150909 01 1 10
01 20150909 02 1 10
……
01 20150909 21 1 10
01 20150909 22 1 5
01 20150909 22 2 10
01 20150909 23 1 10
このテーブルのデータに対して
ID、日付、カテゴリごとに、ある時間範囲で個数の集計を行いたいと思っております。
[ID] [日付] [カテゴリ] [昼間集計(09-18)] [夜間集計(19-08)]
01 20150909 1 120 250
01 20150909 2 100 25
以下のようなクエリを作成してみました。
SQL
1SELECT ID, 日付, 2 (SELECT SUM(個数) WHERE ID='01' AND 日付='20150909' 3 AND ('09'<= 時間 AND 時間 <='18')AS 昼間集計(09-18), 4(SELECT SUM(個数) WHERE ID='01' AND 日付='20150909' 5 AND (('00'<= 時間 AND 時間 <='08') OR ('19'<= 時間 AND 時間 <='23') )AS 夜間集計, 6FROM test_table 7GROUP BY ID, 日付, カテゴリ
求める結果は抽出されましたが、SQL自体が長くなってしまい、
もっと短くできないかと思い質問させていただきました。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/16 01:42
2015/09/16 05:13