
テーブル名:グループ表
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で質問しましょう!
似たような質問が見つかりました
- 高校 数学A組み合わせの考え方 3 2022/04/19 09:05
- LINE LINEについて教えてください。 とあるグループで活動しています。 (編み物クラブとか絵画クラブなど 2 2022/10/13 17:16
- その他(社会・学校・職場) 店の売上が少ないことに罪悪感を感じる。 7 2023/07/13 15:48
- 国産車 現在、世界で一番売れてる自動車メーカーはトヨタですか?また、その売上はグループにいるスバル、日野自動 3 2023/08/22 18:45
- K-POP ル セラフィム …てグループなの? 次 TikTokでやたらに流れている曲。 次から次へと 韓国グル 1 2022/05/12 05:16
- Excel(エクセル) 指定した数字まで累計する方法や文字例の抽出について教えてください 4 2022/10/05 21:19
- 友達・仲間 みなさんならどこに入りますか? 6 2023/02/08 08:12
- 友達・仲間 今のグループと距離を置くべきでしょうか? 1 2023/04/26 20:52
- 学校 学校でグループの人に迷惑をかけてしまいました… 3 2022/06/21 12:44
- 統計学 処理Aと処理A+Bの2群の差から、AとBの効果や相対的重要性を定量したい 5 2023/02/22 09:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
項目名の制限について
-
SQL文 2つのテーブルから、グ...
-
SQL文 グループ集計TOPに対する...
-
SQLでの検索の仕方をご教示くだ...
-
Accessで期間指定の売上合計と...
-
SELECT文が上手く書けません
-
【マクロ】列を折りたたみ非表...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
変数が選択リストにありません
-
INSERT INTO ステートメントに...
-
FROM の中で CASE を使えるでし...
-
Accessのクエリでデータの入力...
-
datファイルからaccessにインポ...
-
Accessでテーブル名やクエリ名...
-
Access テキスト型に対する指定...
-
Accessのフィールド数が255しか...
-
access2000:フォームで入力し...
-
テーブルの存在チェックについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLでグループ化した結果の件数...
-
MySQLで改行を含む文の登録のし...
-
項目名の制限について
-
フォームで検索 エラーの表示...
-
改行コードを削除して取得する...
-
Accessで期間指定の売上合計と...
-
LEFT JOINとRIGHT JOINについて
-
アクセスのクエリについて(前...
-
SQLを教えて下さい
-
【 困 】 ストアドプロシージャ
-
オラクルSQLの累計値取得方法に...
-
他のテーブルの抽出条件で更新...
-
SQL文のエラーについて
-
ORA-01722: 数値が無効です
-
集合関数(MIN)で取得した値を...
-
SQL抽出方法に悩んでいます④
-
列名無効について
-
内部結合のSQL文
-
“SQL文を作るSQL”の書き方って...
-
特殊なレコードの取得方法
おすすめ情報