• ベストアンサー

unionの結果は集計はできないですよね。。。。

【明細データ】と【変換テーブル】で、変換後明細データを作成 して、その結果を集計したいのですが、、、 下記の結果を求めるためにはSQLひとつで可能でしょうか? ※(3)の表まではunionで可能でしたが、unionでは集計はできないですよね。。。。 (1)【明細データ】 CODE VALUE AMOUNT A 1000 10000 B 2000 20000 C 3000 30000 D 4000 40000 E 1001 10000 F 2001 20000 G 3000 30000 H 4000 40000 (2)【変換テーブル】 VALUE1 VALUE2 1000 1001 2000 2001 (3)【変換後明細データ】 CODE VALUE AMOUNT A 1001 10000 B 2001 20000 C 3000 30000 D 4000 40000 E 1001 10000 F 2001 20000 G 3000 30000 H 4000 40000 (4)【SQL抽出結果】が欲しい VALUE AMOUNT 1001 20000 2001 40000 3000 60000 4000 80000

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

  • ベストアンサー
  • X-trail_00
  • ベストアンサー率30% (438/1430)
回答No.4

#1です やっぱテストしないとダメですね テーブル作って試しました select value , sum(amount) from (select a.CODE CODE, nvl(b.value2,a.value ) value, a.AMOUNT AMOUNT from 明細データ a, 変換テーブル b where a.value = b.value1(+)) group by value

masa-it
質問者

お礼

更に、作ってくださったのですね。 ありがとうございます。 ばっちりでした。 from句に select文を書いて、カラム名称を つけてあげれば、うまく出来るのですね、勉強になりました。

その他の回答 (3)

  • tkrn
  • ベストアンサー率53% (33/62)
回答No.3

質問者様Oracleの質問で大丈夫ですか? #Accessでの質問が多いようですが… 試してませんが、これでいけないですか? SELECT T.VALUE, SUM(T.AMOUNT) FROM (SELECT DECODE(B.VALUE2, NULL, A.VALUE, B.VALUE2) VALUE ,A.AMOUNT FROM 明細データ A LEFT JOIN 変換テーブル B ON A.VALUE = B.VALUE1 ) T GROUP BY T.VALUE

masa-it
質問者

お礼

回答ありがとうございます。 Oracleです。質問にもOracleとつけておけばよかったですね。 お手数をおかけしました。

回答No.2

select nvl(Y.VALUE1,X.VALUE) VALUE,sum(AMOUNT) AMOUNT from 明細データ X,変換テーブル Y where X.VALUE=Y.VALUE1(+) group by nvl(Y.VALUE1,X.VALUE); こんな感じ。

masa-it
質問者

お礼

回答ありがとうございます。 nvl(Y.VALUE1,X.VALUE);が、 nvl(Y.VALUE2,X.VALUE); でしたが、出来ました。niceです。nvlをGourpByするのですね。 ありがとうございます。

  • X-trail_00
  • ベストアンサー率30% (438/1430)
回答No.1

これでいけるでしょう ポイントは3をインラインビューにするだけ select value , sum(amount) (select a.CODE CODE, b.VALUE2 VALUE, a.AMOUNT AMOUNT from 明細データ a, 変換テーブル b where a.value = b.value1) group by value

masa-it
質問者

補足

早速の回答ありがとうございます。(Oracleです) すいません、このまま実行したらダメでした。 sumの後に fromを追加ですか? これも結果はダメでした。 > ポイントは3をインラインビューにするだけ とは、(select a.CODE CODE,b.VALUE2 VALUE,a.AMOUNT AMOUNT from 明細データ a,変換テーブル bwhere a.value = b.value1) の事ですよね。

関連するQ&A