![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?5a7ff87)
環境はoracle9iです。
■テーブルの構成
|年度|月|部署コード|商品コード|金額|
■テーブルの内容
|2010|01|AAA|001|1000|
|2010|02|AAA|001|2000|
|2010|01|AAA|001|3000|
|2010|01|AAA|002|3000|
|2010|02|BBB|003|4000|
|2010|01|CCC|001|5000|
|2010|03|CCC|001|6000|
上記のようなテーブルがあり、
これを年度,月,部署コード,商品コードでサマリした値を表示したいです。
と、ここまでなら上の4つでGROUP BYしてあげれば良いのですが、
そこに年度,部署コード,商品コードでサマリした
「累計金額」列を加える必要があります。(イメージは下記のとおりです。)
■抽出結果の構成
|年度|月|部署コード|商品コード|金額|累計金額|
■抽出結果の内容
|2010|01|AAA|001|4000|6000|
|2010|02|AAA|001|2000|6000|
|2010|02|BBB|003|4000|4000|
|2010|01|CCC|001|5000|11000|
|2010|03|CCC|001|6000|11000|
GROUP BYと別の集計単位で列を作ることが可能か、
可能であればどのようなSQLを書くべきか、
というところを教えてください。
No.1ベストアンサー
- 回答日時:
TESTしてませんが。
--SQL*PlusをSpoolする場合のおまじない
set linesize 30000
set heading off
set pagesize 0
set trimspool on
set colsep |
--SQL本体
select a.年度, a.月, a.部署コード, a.商品コード, a.金額, b.累計金額
from
(
select 年度, 月, 部署コード, 商品コード, sum(金額) 金額
from テーブル
group by 年度, 月, 部署コード, 商品コード
) a,
(
select 年度, 部署コード, 商品コード, sum(金額) 累計金額
from テーブル
group by 年度, 部署コード, 商品コード
) b
where a.年度= b.年度
and a.部署コード = b.部署コード
and a.商品コード = b.商品コード
order by a.年度, a.月, a.部署コード, a.商品コード
;
ありがとうございます。
環境が無いのですぐには試せませんが、
この方法か、No2の方が書いてくださった
分析関数を使う方法のどちらかでいけそうですね。
非常に助かりました。
No.3
- 回答日時:
Yahoo!知恵袋の方でも同じ質問をし、既に回答ももらっているようですが。
。。「累計」ではなく、「『年度+部署コード』毎の合計を、各行にくっつけるだけ」のように見えますが?
そうであれば、サブクエリでの集計結果をジョインするだけです。
本当にいわゆる「累計させていく」なら、Oracleであれば既に分析関数が実装されてういるバージョンだと思いますが?
知恵袋で投稿した時間にyahooのサーバエラーが発生していて、
「ページが見つかりません。」エラーが質問時と回答時に表示されていたため、
緊急性が高い質問なのでこちらで別途質問しました。
重複質問の」ようになってしまい申し訳ございません。
No.2
- 回答日時:
環境が無いので試してません。
あしからず。SELECT 年度, 月, 部署コード, 商品コード, SUM(金額) AS 合計金額, SUM(SUM(金額)) OVER(PARTITION BY 年度, 部署コード, 商品コード) AS 累計金額
FROM テーブル
GROUP BY 年度, 月, 部署コード, 商品コード
ORDER BY 年度, 部署コード, 商品コード, 月
ありがとうございます。
環境が無いのですぐには試せませんが、
この方法か、No1の方が書いてくださった
サマリと結合する方法のどちらかでいけそうですね。
非常に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access終了時の最適化が失敗?
-
一度のSQL発行で結果を得るには...
-
Order by句でバインド変数を使...
-
CREATE テーブルでの複数外部...
-
SQLの集計について教えてくださ...
-
DoCmd.ApplyFilter引数を文字に...
-
沿線コード
-
SQLで<>を使用するとき、
-
Oracle 文字コードについて
-
〜のような結果を出すためのSQL...
-
初心者Mysqlの関数のsubstring...
-
ACCESSで大量の更新を行うと「...
-
ファイル書込みで一行もしくは...
-
Accessで別テーブルの値をフォ...
-
Date型にNULLをセットしたい V...
-
Accessでのレコード存在チェック
-
Excelで、改行がある場合の条件...
-
DataGridViewの、選択されてい...
-
使うべきでない文字。
-
実績累計の求め方と意味を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access終了時の最適化が失敗?
-
CREATE テーブルでの複数外部...
-
Order by句でバインド変数を使...
-
沿線コード
-
ヤマト急便のチェックデジット...
-
SQLServer 日付が直前のレコー...
-
困っています。ORACLE_SQL 複数...
-
Excelファイルのデータをテーブ...
-
SQL 特定のカラムが最大値のレ...
-
10営業日前の日付を取得したい...
-
平成20年 春期 基本情報技術者 ...
-
スペシャリストの方! 助けてく...
-
【SQL】またぎデータの検索の仕方
-
SQLの質問
-
SQLについて
-
SQLの実行結果が異なる
-
SQLにて縦を横へ展開
-
DoCmd.ApplyFilter引数を文字に...
-
Access Dlookup関数について
-
RDBの親子関係の表現について
おすすめ情報