
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
請求と入金のテーブルの作成の...
-
ACCESS2000のテーブル構造
-
accessで移動平均する方法
-
2つのテーブルから条件に一致...
-
主キーの変更
-
続.ORACLEのSELECTのソートに...
-
ACCESS2007 フォーム 「バリア...
-
SQLで○○の値以外を持っているレ...
-
SELECT文でのデッドロックに対...
-
accessのロック
-
エクスポート時の改行コードに...
-
SQLServerで同一条件レコードの...
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessの重複クエリで最小以外...
-
Accessにインポートしたら並び...
-
DataTableから条件を満たした行...
-
列名XXXXが無効です
-
sqlserverで集計結果をUPDATEし...
-
更新ロックとデッドロック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
accessで移動平均する方法
-
請求と入金のテーブルの作成の...
-
ACCESS2000のテーブル構造
-
重複するキーから一番古い年月...
-
2つのテーブルから条件に一致...
-
Accessユニオンクエリーで2つ...
-
主キーの変更
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
続.ORACLEのSELECTのソートに...
-
Accessでフィールドを比較した...
-
行方向のデータを横に並べる
-
update文で質問です。 下記の条...
-
ACCESS2000です。
-
VIEWでテーブルの集計結果...
-
場合によって条件を変えるSQL
-
商品コード番号を入力すると商...
-
ACCESSのコンパイルエラーについて
-
Sheet1$が存在致しませんとエラー
おすすめ情報
後出しで申し訳ありません。
テーブルの変更(カラム追加等)は不可です。
カラムを追加出来ればそうしたいのですが、今回は上記条件でお願いいたします。