![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?8acaa2e)
環境は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ランキング
-
ヤマト急便のチェックデジット...
-
10営業日前の日付を取得したい...
-
Access終了時の最適化が失敗?
-
SQLの実行結果が異なる
-
SELECTで1件のみ取得するには?
-
GROUP BYを行った後に結合した...
-
ADO VBA 実行時エラー3021
-
外部結合とor条件混在の記述方法
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTの結果で同一行を複数回...
-
実績累計の求め方と意味を教え...
-
カレントレコードが無い事を判...
-
DataGridViewにてセル以外をク...
-
GROUP BYを使ったSELECT文の総...
-
DataGridViewの内容をDBに反映...
-
SQL>UPDATEと同時にその件数を...
-
Excelでセルの書式設定を使用し...
-
キーが同じを複数行を1行にま...
-
DATE型にNULLをセットするには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access終了時の最適化が失敗?
-
CREATE テーブルでの複数外部...
-
沿線コード
-
10営業日前の日付を取得したい...
-
Order by句でバインド変数を使...
-
ヤマト急便のチェックデジット...
-
同一コード毎に最新の名称を取...
-
SQLに関して
-
【SQL】登録されているかを比較...
-
SELECT文で
-
オラクル 名称をコードに変換
-
SQLの抽出条件の記述の仕方につ...
-
一度のSQL発行で結果を得るには...
-
ACCESSで、コード基本のお勧め...
-
SQLにて縦を横へ展開
-
SQLの集約の方法
-
SQLで<>を使用するとき、
-
基本情報技術者の試験について
-
ストアドプロシージャーの引数...
-
SQL GROUP BY
おすすめ情報