- - PR -
集計のSQL文について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-07-30 07:16
oracle9iで以下のテーブルがあったとします。
No. NAME COST --- ---- ---- 1 AAA 10 1 BBB 15 1 CCC 20 2 DDD 25 2 EEE 30 SQL文で以下のようにNO.ごとにCOSTの小計を出したいのです No. NAME COST 小計 --- ---- ---- ---- 1 AAA 10 1 BBB 15 1 CCC 20 45 2 DDD 25 2 EEE 30 55 小計は、Noの最後のレコードに小計をだして それ以外は、空欄で出したいです。 よろしくお願いします |
|
投稿日時: 2007-07-30 11:09
(SELECT SUM(COST) FROM テーブル as COST合計
WHERE (COST合計.No = テーブル.No)) AS 合計 とりあえず選択列にこれを入れれば表示されます。が全部の行に表示されちゃうので 表示順に並んでいる番号があれば(ORACLEだとrownumでできるんですかね)、 CASE WHEN NOT EXISTS (SELECT id FROM テーブル as 同じNo WHERE 同じNo.id > テーブル.id AND 同じNo.No= テーブル.No) でくくってやれば(else は nullにでもしておく)よいでしょう。 |
|
投稿日時: 2007-07-30 12:20
ROLLUPはどうでしょうか?
|
|
投稿日時: 2007-07-31 06:36
べるさん、よっしーさん、返信ありがとうございます。
ROLLUPをしらべたのですが、サンプルは、UNIONを用いた もので、集計が別な行に表示されています。 ROLLUPを用いた具体的なSQL文を教えていただけないでしょうか? よろしくお願いします。 |
|
投稿日時: 2007-07-31 14:40
もんたさん
こんにちは。 今、Oracleの環境がないのでためせないのですが、 Googleで「ROLLUP ORACLE」で検索した結果の一番上のリンクにサンプルがあります。 これでいかがでしょうか? |
1