ORACLEで以下の情報を抽出したいのですが、キーワードがありません等のエラーが出てうまくいきません。どなたかご教授お願いいたします。
製品テーブル
区分 区分名
A えんぴつ
B 消しゴム
C ボールペン
売上テーブル
売上コード 売上金額
11A11 100
22B22 200
33C33 300
11A12 200
《出力したい結果》
区分 区分名 合計金額
A えんぴつ 200
B 消しゴム 100
C ボールペン 300
〈出力条件〉
売上コードの3文字目から製品区分を特定し、製品区分毎の売上金額を合計する。
WHERE句にSUBSTRING(区分,3,1)を用いて製品区分を特定したいのですが、SQLが組めません。
select S.区分,S.区分名,sum(U.売上金額)
from 製品テーブル S, 売上テーブル U
where case substring(U.売上コード,3,1) between A and Z then substring(U.売上コード,3,1)
else substring(U.売上コード,3,1) between 0 and 9 then ??
order by S.区分
group by S.区分
根本的におかしい所があると思うのですが、恥ずかしながら自分では特定出来ませんでした。
どなたかご教授のほどお願いいたします。
No.2ベストアンサー
- 回答日時:
No.1さんも言っているように売上テーブルに区分を持たせるべきでしょう。
しかし、テーブルの変更が不可なら副問合せを使用しては如何でしょう。
Select S.区分,S.区分名,U.売上合計
from 製品テーブル as S,
(select substr(売上コード,3,1) as 区分, sum(売上金額) as 合計金額
from 売上テーブル group by substr(売上コード,3,1)) as U
where S.区分=U.区分 order by S.区分
元のsqlはwhere句の構文が誤っていると思います…
手元に実行環境が無いため未確認ですが、上記のsqlで実現できるかと…
ご参考まで
補足に記述いたしましたが、後出しで条件を追加する形で申し訳ありませんでした。
細うどん様のおっしゃる通りテーブルの変更が出来ないので、頂いたSQLを参考に副問合せでやってみようと思います。
当方も出先で実行環境が手元に無いため、明日以降再度挑戦します。結果を再度ご報告いたします。
その前に副問合せについて参考書を一読せねば。。
ご回答ありがとうございました。
No.3
- 回答日時:
No.2です
Select句間違えていたので訂正します。
U.売上合計 では無く U.合計金額 でした。
申し訳ございません。
ご報告が遅れましたが、いただいたSQLを参考に副問合せを使ったら出来ました!
初歩的な質問でお恥ずかしい限りでしたが、丁寧なご回答をありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(ビジネス・キャリア) 事業復活支援金の事前確認での売上高チェックについて 2 2022/03/26 13:47
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- 財務・会計・経理 事業復活支援金の事前確認について 2 2022/04/11 16:07
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- 財務・会計・経理 消費税の税務について教えてください。 不動産会社の経理をしています。まだまだ勉強中の身です。とんちん 3 2022/07/28 19:26
- Excel(エクセル) エクセル 関数について 4 2022/08/05 11:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
動的SQL (その2)
-
レコードの一致方法
-
SQL 2つのテーブルとSUBSTRING...
-
商品コード番号を入力すると商...
-
ACCESS 一つのフィールドに複...
-
主キーの変更
-
select文の書き方
-
続.ORACLEのSELECTのソートに...
-
ACCESSのコンパイルエラーについて
-
連番のMin, Maxを取得したい
-
access初心者です。 アパレル...
-
行方向のデータを横に並べる
-
テーブルを分けるべきか
-
PLSQLの識別子エラー
-
ACCESSのSQLで、NULLかNULLでな...
-
SELECT時の行ロックの必要性に...
-
ACCESS2007 フォーム 「バリア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
行方向のデータを横に並べる
-
PLSQLの識別子エラー
-
VIEWでテーブルの集計結果...
-
Accessでフィールドを比較した...
-
Accessユニオンクエリーで2つ...
-
主キーの変更
-
片方だけ抽出する方法(SQL)
-
ACCESSのコンパイルエラーについて
-
【Access】順位を付けたい
-
[Oracle] UPDATE分の副問い合わ...
-
ACCESS インポート時の重複チ...
-
テーブル値関数経由でのデータ更新
-
ACCESS2000でDCount関数の使い方
-
Access2002の集計レポート?
-
Inner join と Left joinの明...
-
商品コード番号を入力すると商...
おすすめ情報
後出しで申し訳ありません。
テーブルの変更(カラム追加等)は不可です。
カラムを追加出来ればそうしたいのですが、今回は上記条件でお願いいたします。