重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

MySQLで複数条件指定での抽出

いつもお世話になりますm(__)m
MySQLで複数の条件を指定して、グループ化(合計)した結果を出す方法がわかりません(>_<)

たとえば、以下の2つのテーブルがあります。

テーブル:仕入先マスタ
仕入先ID|仕入先名|締日|支払区分|支払日|
0001|あいうえお|20|1|20|
0002|かきくけこ|99|2|99|
0003|さしすせそ|20|2|99|

テーブル:仕入テーブル
仕入日|仕入先ID|商品名|仕入金額|
2010/02/10|0001|商品A|10,000|
2010/02/25|0001|商品B|20,000|
2010/02/20|0002|商品C|30,000|
2010/02/25|0002|商品D|40,000|
2010/03/10|0002|商品E|50,000|
2010/03/15|0002|商品F|60,000|
2010/02/12|0003|商品G|70,000|
2010/02/19|0003|商品H|80,000|
2010/03/12|0003|商品I|90,000|

上記から抽出条件として

条件1
 仕入テーブルの仕入日:2010/02/01~2010/02/28
 仕入先マスタの締日:20
結果1
 仕入先ID|仕入先名|仕入金額合計|
 0001|あいうえお|30,000|
 0003|さしすせそ|160,000|

条件2
 仕入テーブルの仕入日:2010/03/01~2010/03/31
 仕入先マスタの締日:99
結果2
 仕入先ID|仕入先名|仕入金額合計|
 0002|かきくけこ|110,000|

という結果が出したいのですが、どのようなSELECT文を書けばいいのでしょうか?


非常に汚い書き方で見にくく申し訳ありませんが、お詳しい方、是非ともご教授のほどお願いしますm(__)m

A 回答 (1件)

一部結果1がおかしいみたいですね・・


あとはこんな感じで

SELECT 仕入テーブル.仕入先ID,仕入先名,SUM(仕入金額) AS 仕入金額合計
FROM 仕入先マスタ
INNER JOIN 仕入テーブル ON 仕入先マスタ.仕入先ID=仕入テーブル.仕入先ID
AND 仕入日 BETWEEN '2010/02/01'AND '2010/02/28'
WHERE 1
AND 締日='20'
GROUP BY 仕入先マスタ.仕入先ID

SELECT 仕入テーブル.仕入先ID,仕入先名,SUM(仕入金額) AS 仕入金額合計
FROM 仕入先マスタ
INNER JOIN 仕入テーブル ON 仕入先マスタ.仕入先ID=仕入テーブル.仕入先ID
AND 仕入日 BETWEEN '2010/03/01'AND '2010/03/31'
WHERE 1
AND 締日='99'
GROUP BY 仕入先マスタ.仕入先ID
    • good
    • 0
この回答へのお礼

ご回答ありがとうございますm(__)m

結果おかしかったですね(^-^;)
お教え頂いた方法で、まさに解決しました!
ありがとうございましたm(__)m

今後もと宜しくお願い致します。

お礼日時:2010/03/23 11:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す