テーブル名:グループ表
ID グループ名
-------------------------
100 Aグループ
101 Bグループ
102 Cグループ
103 Dグループ
104 Eグループ
テーブル名:売上表
ID 売上年月日 売上額
------------------------------
101 20090401 1000
101 20090501 2000
102 20090401 2500
102 20090503 1500
103 20090404 3000
103 20090506 4000
上記の2つのテーブルがあります。
グループごとの売上合計一覧を出します。
■求めたいSELECT文結果
グループ名 合計(売上額)
----------------------
Aグループ 0
Bグループ 3000
Cグループ 4000
Dグループ 7000
Eグループ 0
select グループ名,sum(売上額)
from (select グループ名,売上額
from グループ表,売上表
where グループ表.ID = 売上表.ID)
group by グループ名
では、
グループ名 合計(売上額)
----------------------
Bグループ 3000
Cグループ 4000
Dグループ 7000
となってしまい、うまくいきません・・・
どうように書いたらよろしいでしょうか?
No.4ベストアンサー
- 回答日時:
> 『ORA-25154: USING句の列の部分には修飾子を持てません』
先に例示したSQLのUSING句には、修飾子は無いのですが・・・。
「 USING(ID) 」の部分を 「 USING(グループ表.ID) 」などと変更しては無いでしょうか?
USING句と同じことを ON を使っても書けますので、そうした場合はどうでしょうか?
例) --------------------------------------------------------------
SELECT
グループ名,
SUM(CASE WHEN 売上額 IS NULL THEN 0 ELSE 売上額 END)
FROM グループ表 LEFT OUTER JOIN 売上表 ON(グループ表.ID = 売上表.ID)
GROUP BY グループ表.ID, グループ表.グループ名
------------------------------------------------------------------
ちなみにUSING句のカラムには表名修飾はできません。
http://okwave.jp/qa4871143.html
実行できました!!
ちなみにSUMは、
SUM(NVL(売上額,0))でもいけました。
SQLを始めてまだ3日、こういう教えていただける所があると、
大変助かります^^ありがとうござました
No.3
- 回答日時:
> でも、うまく実行できませんでした。
。エラーが出たのか望ましくない結果が表示されたのか、どちらでしょう?
エラーの内容、もしくは、表示された結果はどうなりますでしょうか?
また、昔のバージョンの Oracle ですとFROM句で結合条件の記述ができなかったりします。
Oracle のバージョンはいくつでしょう?
この回答への補足
oracle 9iをです。
SI object browserを使っています。
以下のエラーがでました。よろしくお願いします。
『ORA-25154: USING句の列の部分には修飾子を持てません』
No.2
- 回答日時:
私も外部結合を使えば良いと思います。
また、サブクエリを使う必要も無いかと。
例) ---------------------------------------------------------------
SELECT
グループ名,
SUM(CASE WHEN 売上額 IS NULL THEN 0 ELSE 売上額 END)
FROM グループ表 LEFT OUTER JOIN 売上表 USING(ID)
GROUP BY グループ表.ID, グループ表.グループ名
-------------------------------------------------------------------
なお、手元に実行環境が無いので確認はしていません。
No.1
- 回答日時:
外部結合にすれば良いのでは?
グループ名と売上額を right outer join で結合すれば良いのだと思います。
また、その際、AグループなどはNULLになりますので、売上額の箇所をNVL(売上額,0)として挙げる必要があると思います。
確認はしていませんが、
select グループ名,sum(売上額)
from (select グループ名,NVL(売上額,0)
from グループ表 RIGHT OUTER JOIN 売上表
ON(グループ表.ID = 売上表.ID))
group by グループ名
みたいな感じではどうでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLで改行を含む文の登録のし...
-
オラクルSQLの累計値取得方法に...
-
改行コードを削除して取得する...
-
SQLでNOT INと!=ALLの違い
-
ORA-01722: 数値が無効です
-
SQLでグループ化した結果の件数...
-
フォームで検索 エラーの表示...
-
Accessで期間指定の売上合計と...
-
Excel 2019 のピボットテーブル...
-
Accessでテーブル名やクエリ名...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
変数が選択リストにありません
-
Accessのクエリでデータの入力...
-
テーブルの存在チェックについて
-
Accessのフィールド数が255しか...
-
Accessの帳票フォームで重複デ...
-
importについて
-
アクセス エラーを数値「0」に...
-
アクセス VBAで列の入れ替...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLで改行を含む文の登録のし...
-
フォームで検索 エラーの表示...
-
SQLでグループ化した結果の件数...
-
ORA-01722: 数値が無効です
-
改行コードを削除して取得する...
-
項目名の制限について
-
オラクルSQLの累計値取得方法に...
-
Accessで期間指定の売上合計と...
-
SQLでNOT INと!=ALLの違い
-
SQLの抽出方法について
-
データベースから抽出した一覧...
-
列名無効について
-
SQL文 2つのテーブルから、グ...
-
アクセスのクエリについて(前...
-
SQLを教えてください
-
SQL文のエラーについて
-
内部結合のSQL文
-
SQL抽出方法:売上Tを集計した...
-
以下のようなSQLについて教えて...
-
SQLのパラメータ・・
おすすめ情報