こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL 集計について

集計方法がどうしてもわからないのでご教授ください。
下記のテーブルを持っています。
テーブル1では日々の売上金額を管理し、
テーブル2では一週間の日付が保存されています。(月曜日~日曜日)

-------テーブル1-------       
   日付    売上金額  
2013/09/01     3000  
2013/09/02     4000  
2013/09/03     2000  
 ・            
 ・         
 ・          
2013/09/30     1000
-----------------------

--------テーブル2---------
 日付(月)    日付(日)   
2013/08/26   2013/09/01
2013/09/02   2013/09/08
   ・    
   ・
   ・      
2013/09/30   2013/10/06
-------------------------

テーブル1とテーブル2の情報をもとに
テーブル3にある、日付(月)と日付(日)は、テーブル2から持ってきて、
一週間の集計を行いたいと思っております。

--------------テーブル3--------------
 日付(月)    日付(日)    売上金額
2013/08/26  2013/09/01     3000
2013/09/02  2013/09/08     6000
  ・
  ・
  ・
2013/09/30  2013/10/06     1000
------------------------------------

このようにするにはどのようなSQLを組めばいいのでしょうか?
SQL初心者のため、難しい単語などを使わずに
ご説明をしていただければと思います。
どうぞ、よろしくお願いいたします。

投稿日時 - 2013-10-25 14:28:19

QNo.8320084

すぐに回答ほしいです

質問者が選んだベストアンサー

単純に結合して集計すればいいと思います。

select t2.日付(月), t2.日付(日), sum(t1.売上金額) as 売上金額
from テーブル2 t2
inner join テーブル1 t1 on (t1.日付 between t2.日付(月) and t2.日付(日))
group by t2.日付(月), t2.日付(日)
order by t2.日付(月);

もし、テーブル1にテーブル2の1レコードの期間内に該当するレコードが1件もないことがあるのであれば、
inner join(内部結合)としているところを left join(左外部結合)にしてください。

なにが難しい単語に当たるのかがこちらには分からないので、意味が分からないところはご自身で調べてみてください。

投稿日時 - 2013-10-25 15:49:48

お礼

ありがとうございます。
とてもわかりやすく、理解することができました。

投稿日時 - 2013-10-25 16:21:45

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問