Oracle初心者です。お願いいたします。
Oracle8iに、VB6で接続するアプリですが、
番号 列名 ID 概要 金額
0001 品川 10 駅が広い 10000
0002 渋谷 10 繁華街 15000
0003 川崎 12 新開発地 30000
0004 池袋 13 旧市街 18000
0005 神田 12 本屋街 40000
0006 上野 10 食品街 500
ひとつのSQL文で、上記のような表の、同一のID列ごとにまとまった、金額の合計を求めるのですが、番号・列名・概要は、その“番号”のもっとも大きな番号の値を表示したいのです。ACCESSであれば、列に“First”を使用すればできるのですが、Oracle8iだと、わかりません。
欲しい表示は、
番号 列名 ID 概要 金額
0006 上野 10 食品街 25500
0005 神田 12 本屋街 70000
0004 池袋 13 旧市街 18000
同様なSQLが他にもあり、最終的に、3~6個のSQLを、
Unionで一本化するのですが、元になるSQLがつくれません。
どなたか、よろしくお願いいたします。
by mictic
No.1ベストアンサー
- 回答日時:
誰かもっとすっきりしたものを考えてくれ
select 最大番号, 列名, ID, 概要, 合計金額
from 表,
(select ID, sum(金額) as 合計金額 from 表 group by ID) A,
(select ID, max(番号) as 最大番号 from 表 group by ID) B
where
表.ID=A.ID and
表.ID=B.ID and
表.番号=B.最大番号;
No.3
- 回答日時:
#2さんと同じですが、8iではエイリアスのASは効かなかったと思われ。
もし、エラーになったらこちらで。
select a.番号,a.列名,a.ID,a.概要,b.金額
from テーブル a,
(select ID,sum(金額) "金額",max(番号) "番号"
from テーブル
group by ID) b
where a.番号 = b.番号
order by a.ID
No.2
- 回答日時:
「番号」は主キーでしょうか?
Oracleが手元に有りませんので確認できませんが、「番号」が主キー、または、NULL無しのユニークな値だと仮定して、下記の様なクエリではどうでしょうか。
SELECT
a.番号,
a.列名
a.ID
a.概要
b.合計金額
FROM
元の表 AS a,
(SELECT MAX(番号) AS 番号, SUM(金額) AS 合計金額 FROM 元の表 GROUP BY ID) AS b
WHERE a.番号 = b.番号
ORDER BY a.ID
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- MySQL SQLで日付別のIDを生成するには 3 2022/10/09 10:34
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- その他(データベース) 伝票番号、品番、在庫としてマクロでもAccessでもデータ表を作りたいのですが、ご指導お願いします 1 2022/11/13 23:48
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- その他(Microsoft Office) 同じ番号に並び替え 1 2022/10/21 22:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLServer 日付が直前のレコー...
-
沿線コード
-
SQLの質問
-
Excelファイルのデータをテーブ...
-
困っています。ORACLE_SQL 複数...
-
スペシャリストの方! 助けてく...
-
Accessで別テーブルの値をフォ...
-
select句副問い合わせ 値の個...
-
GROUP BYを行った後に結合した...
-
エクスプローラーで「2つの条件...
-
ファイル書込みで一行もしくは...
-
<SQL>条件付きで最小値レコード...
-
SQL>UPDATEと同時にその件数を...
-
Access を×ボタンで閉じ...
-
sum()の出力結果順に並び替えを...
-
データセットのレコード更新が...
-
COBOLでのランダムアクセス
-
【初歩】ラジオボタンをつかっ...
-
Date型にNULLをセットしたい V...
-
チェックボックスの項目をDBにi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access終了時の最適化が失敗?
-
CREATE テーブルでの複数外部...
-
Order by句でバインド変数を使...
-
沿線コード
-
SQLServer 日付が直前のレコー...
-
10営業日前の日付を取得したい...
-
Excelファイルのデータをテーブ...
-
SQLの実行結果が異なる
-
【SQL】またぎデータの検索の仕方
-
SQLに関して
-
SQLにて縦を横へ展開
-
ヤマト急便のチェックデジット...
-
SQL GROUP BY
-
スペシャリストの方! 助けてく...
-
娘の学校から出た暗号解読です...
-
SQLで<>を使用するとき、
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
おすすめ情報