SELECT
A.商品名
B.商品名
FORM A,B
WHERE
((A.店コード IN (引数.店コード)) and (A.商品コード IN(引数.商品コード))
AND (A.店コード = C.店コード)
AND ((A.商品コード = D.商品コード) AND (A.店コード = D.店コード))
というSQLに下記条件を追加したいのですが、集計関数の使用方法がわかりません。
SELECT Sum(金額)
FROM Q
WHERE Q.店コード = A.店コード AND Q.商品コード = A.商品コード
GROUP BY Q.店コード, Q.商品コード
Qテーブルは 店コード、商品コード、メニューコード がKEYなのですが、
店コードと商品コードだけで集計した値をSELECTしたいのです。
恐れ入りますが、ご教授頂けますよう宜しくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
つまり、仕様的には
1.AテーブルとマスタのCテーブルを結合した店コードを取得する。
2.取得した店コードでDテーブルの商品コードを取得する。
3.1で取得した店コードと2で取得した商品コードでQテーブルより金額を取得したい。
その際、店コードと商品コードが同じものがあれば合計金額で取得したい。
と言うことでよろしいでしょうか?
select Q.店コード,Q.商品コード,sum(Q.金額) as 金額
from (select A.店コード,D.商品コード from A,C,D
where A.店コード=C.店コード and A.店コード=D.店コード
group by A.店コード,D.商品コード) E
, Q
where E.店コード=Q.店コード and E.商品コード=Q.商品コード
group by Q.店コード,Q.商品コード
でいいと思います。
問題はA,B,Cの結合ときに複数の商品コードが取得されるので、ここで同じ商品コードは1つしか取得するようにしなければなりません。そうでなければ同じ商品コード複数取得されることになり後の勝利が上手く行きません。
取得した店コードと商品コードでQテーブルより金額を取得し集計を行います。ここでも複数の商品コードが発生することになりますのでgroup byが必要でしょう。動作確認はしておりませんので、悪しからず。
No.3
- 回答日時:
#1さんと同じ感想を持ったものですが、それではあんまりなのでw
・最初のselect文に登場するC,Dのテーブルは何ですか?
・A,B,C,D,Qのテーブルのカラムを抜粋でいいので教えて下さい。
・集計するのはどのテーブルに属する金額なのでしょうか?
・店コード、商品コードは全てのテーブルが持っていてKeyになっているのでしょうか?
以上です。
No.2
- 回答日時:
(1)Qテーブルから金額合計、A,B テーブルから商品名を取得する
(2)Q,A,B は 店コード、商品コード で結合
(3)取得するのは 引数の店コード、商品コードのみ
というのであれば、
SELECT
W.店コード
,W.商品コード
,X.商品名
,W.金額
FROM (
SELECT
店コード
,商品コード
,Sum(金額) AS 金額
FROM Q
WHERE 店コード = 引数 AND 商品コード = 引数
GROUP BY 店コード, 商品コード
) W
LEFT JOIN (
SELECT 店コード, 商品コード, 商品名
FROM A
WHERE 店コード = 引数 AND 商品コード = 引数
UNION ALL
SELECT 店コード, 商品コード, 商品名
FROM B
WHERE 店コード = 引数 AND 商品コード = 引数
) X ON ( W.店コード = X.店コード
AND W.商品コード = X.商品コード )
ありがとうございます。
大変参考になりました。
今回はunionが使えないのですが、
じっくり読みこみました。
ありがとうございます。
今後に役立てようと思います。
No.1
- 回答日時:
仕様を日本語で書いてもらえませんか
この回答への補足
恐れ入ります。日本語にて表現しています。
---各テーブルkey
・Aテーブル(データ)
店コード
・Cテーブル(マスタ)
店コード
・Dテーブル(マスタ)
店コード
商品コード
・Qテーブル(データ)
店コード
商品コード
メニューコード
---
(処理内容)店コードと商品コードを引数にデータを取得する。
(1)⇒Aデータの情報(棚卸数)と、Aの店コードと紐づいたCの店名
Aの店コードと、商品コードと紐づいたDの商品名を取得。
(2)(ここから追加処理)(1)および、
⇒Qの店コードとAの店コードが同じ、
Qの商品コードとA商品コードが同じであることを条件に集計し
Qテーブルにある金額をサマリしたい。
---Qテーブルの内容
店コード:商品コード:メニューコード:金額
123 :456 :01 :100
123 :456 :02 :200
---
結果、金額に関しては、
引数.店コード:123、引数.商品コード:456の場合、「300」の出力を行いたい。
◇当初の質問より訂正した個所
SELECT
A.棚卸数
C.店名
D.商品名
FORM A,C,D
以上となります。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) EXCEL VLOOKUPに関する質問 5 2023/02/08 11:38
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- ヤフオク! ヤフオクの取引について 1 2022/04/16 23:08
- Excel(エクセル) エクセル 関数について 4 2022/08/05 11:03
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Excel(エクセル) ある文字を含む際に、値を返す数式についてです 5 2022/08/28 16:58
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
商品コード番号を入力すると商...
-
PLSQLの識別子エラー
-
SQL 2つのテーブルとSUBSTRING...
-
アクセス2003 SQL2000を使用し...
-
行方向のデータを横に並べる
-
Accessリレーションシップ
-
[ BETWEEN ] vs [ >= AND <= ]
-
Access 1レコードずつcsvで出力...
-
accessのエクスポートエラーに...
-
SELECT文でのデッドロックに対...
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessにインポートしたら並び...
-
ACCESSで複数テーブルを結合し...
-
accessテーブル作成クエリを実...
-
Access 削除クエリが重い
-
IFで条件を分岐させてのINSERT...
-
ボタンをクリックした回数をカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
主キーの変更
-
Accessでフィールドを比較した...
-
SQL 2つのテーブルとSUBSTRING...
-
続.ORACLEのSELECTのソートに...
-
行方向のデータを横に並べる
-
下記のsqlで取得されるレコード...
-
VIEWでテーブルの集計結果...
-
update文で質問です。 下記の条...
-
[Oracle] UPDATE分の副問い合わ...
-
自分自身への矢印
-
片方だけ抽出する方法(SQL)
-
Accessユニオンクエリーで2つ...
-
連番のMin, Maxを取得したい
-
Inner join と Left joinの明...
-
日付の最大値を検索条件にする方法
おすすめ情報