OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

1テーブルに対して別々の条件で集計する方法

  • 困ってます
  • 質問No.7709934
  • 閲覧数42
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 75% (6/8)

以下のような集計を、VIEWを使わずに1回のSQLでできますでしょうか。
【対象TBL】
CD FLG KINGAKU
A, 0, 100
A, 0, 200
A, 1, 1000
B, 0, 50
B, 1, 60

【出したい結果】
CD KINGAKU_0 KINGAKU_1
A, 300, 1000
B, 50, 60

普通のSUMで出る以下の結果を、サブクエリなどで横展開しようと試みてるのですが、
うまく出来ません。。
CD FLG KINGAKU
A, 0, 300
A, 1, 1000
B, 0, 50
B, 1, 60
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 60% (431/717)

「FLG」が「0」か「1」だけ判断すればいいのなら
SELECT CD,
SUM( CASE WHEN FLG=0 THEN KINGAKU ELSE 0 END ) KINGAKU_0,
SUM( CASE WHEN FLG=1 THEN KINGAKU ELSE 0 END ) KINGAKU_1
FROM テーブル名
GROUP BY CD
お礼コメント
kokondou

お礼率 75% (6/8)

ありがとうございます。感動しました。
投稿日時 - 2012-09-24 13:32:12
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル9

ベストアンサー率 76% (55/72)

SELECT CD, SUM(CASE WHEN FLG = 0 THEN KINGAKU ELSE 0 END) AS KINGAKU_0, SUM(CASE WHEN FLG = 1 THEN KINGAKU ELSE 0 END) AS KINGAKU_1 FROM 対象TBL GROUP BY CD; ...続きを読む
SELECT CD,
SUM(CASE WHEN FLG = 0 THEN KINGAKU ELSE 0 END) AS KINGAKU_0,
SUM(CASE WHEN FLG = 1 THEN KINGAKU ELSE 0 END) AS KINGAKU_1
FROM 対象TBL
GROUP BY CD;
お礼コメント
kokondou

お礼率 75% (6/8)

ありがとうございます。感動しました。
投稿日時 - 2012-09-24 13:32:34
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ