カレンダーでイベントを追跡する MySQL データベースがあります。関係するすべての日付を含む calendar というテーブルがあります。私の仕事では、特定の価値を持つ契約があります。簡単にするために、1 と 2 のみを使用します。これらのコントラクトには、開始日と終了日があります。カレンダー全体のすべての契約を取得し、各日の契約値を合計したいと考えています。
これまでのところ、私は持っています:
SELECT calendar.datefield AS DATE, contract.time_slots AS Slots_taken
FROM contract
RIGHT JOIN calendar ON calendar.datefield
BETWEEN contract.start_time
AND contract.end_time
LIMIT 600 , 30
これは私が欲しいものをほとんど与えてくれます。このクエリは、次のようなテーブルを生成します。
DATE | Slots_taken
------------|--------------
2013-08-29 | 1
2013-08-30 | 1
2013-08-31 | 1
2013-09-01 | 1
2013-09-01 | 2
2013-09-02 | 1
2013-09-02 | 2
2013-09-03 | 1
2013-09-03 | 2
しかし、ここで私は繰り返しの日付を取得しています。その日付の値の合計で、日付ごとに 1 つの行のみが必要です。したがって、次のようになります。
DATE | Slots_taken
------------|--------------
2013-08-29 | 1
2013-08-30 | 1
2013-08-31 | 1
2013-09-01 | 3
2013-09-02 | 3
2013-09-03 | 3