

SQLで悩んでいるので質問いたします。
テーブル例
日付 タイプ 個数
0901 1 5
0901 1 3
0901 2 2
0901 2 4
0901 3 1
0901 3 2
0902 1 5
0902 1 3
:
:
とあります。
このデータを日付毎、タイプ毎に個数を取得したいと考えています。
そこで下記のようにSQLを実行
SELECT 日付、sum(個数)asタイプ別個数、タイプ
count(*) as タイプ別レコード数
FROM テーブル名
GROUP BY 日付、タイプ
ORDER BY 日付、タイプ
取得できるレコードは下記のようになります。
日付 タイプ別個数 タイプ タイプ別レコード数
0901 8 1 2
0901 6 2 2
0901 3 3 2
:
となります。
ここまでは簡単にいけたのですが、
できればタイプ別の個数を日付で1レコードで取得できないかと悩んでいます。
期待している取得レコードは下記です。
日付 タイプ1個数 タイプ2個数 タイプ3個数 レコード数
0901 8 6 3 6
0902
:
このようにするためにSELECT部分に副問い合わせをしようとしていますがうまくいきません。
SQLで出来る方法があれば、教えてください。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
列「タイプ」の数値の種類は、固定ということでいいのですね?
もしそうであれば、副問い合わせを使うまでもなく、実現可能です。
<検索SQL例>
select
日付,
coalesce(sum(case when タイプ=1 then 個数 end),0) as タイプ1個数,
coalesce(sum(case when タイプ=2 then 個数 end),0) as タイプ2個数,
coalesce(sum(case when タイプ=3 then 個数 end),0) as タイプ3個数,
count(*) as レコード数
from t1
group by 日付
order by 日付;
No.1
- 回答日時:
行で並んでる結果を列に並べるのは、アプリ的なもの作らないと難しそうな気がします。
日付だけのグルーピングすれば
日付 レコード数
0901 6
は出ると思いますが、
>タイプ1個数 タイプ2個数 タイプ3個数
っていうのはタイプの格納結果によって変わる項目なので、静的なSQLでは作り出せないですよね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
日付の大小の表現
-
「3~4日」「3、4日」どう発...
-
「時間」、「期日」、「日付」...
-
「24日の0時」って・・・
-
差し込み印刷に当日の日付が入...
-
エクセル マクロ 名前を付けて...
-
EXCELで日付を****年上期、****...
-
会社や役所などに提出する書類...
-
履歴書の日付間違いで落ちますか。
-
エクセル 日付順に並べてかえた...
-
回覧板の日付について質問です...
-
2つの日付の中間の日付 エク...
-
回転印の使い方
-
Excelでヘッダに前日の日付を表...
-
アクセス日付時刻の自動入力に...
-
差込印刷 縦書きで和暦(漢数...
-
スクリーンショットで撮影する...
-
word
-
日付以外のデータを抽出したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
日付の大小の表現
-
「24日の0時」って・・・
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
エクセル 日付順に並べてかえた...
-
回覧板の日付について質問です...
-
エクセル マクロ 名前を付けて...
-
エクセルで日付別にシートを分...
-
会社や役所などに提出する書類...
-
Excelについて
-
EXCELで日付を****年上期、****...
-
履歴書の日付間違いで落ちますか。
-
フォームの値をクエリーに反映...
-
日付以外のデータを抽出したい...
-
差込印刷 縦書きで和暦(漢数...
-
エクセルで日付け表示で、明治...
-
Excel関数 基準日に一番近い指...
-
Excelでヘッダに前日の日付を表...
-
ACCESSで日付ごとに自動連番(...
おすすめ情報