指定された日付間のすべてのデータを表示したい。データが見つからない日付 すべての列に null を表示したい
テーブル スキーマ
TimeEntry(id: integer, project_id: integer, user_id: integer, hours: float, comments: string, spent_on: date)
今まで試したこと、
set @num = -1;
SELECT DATE_ADD( '2009-01-01', INTERVAL @num := @num +1
DAY ) AS date_sequence, time_entries.id
FROM time_entries
WHERE user_id =55
HAVING DATE_ADD( '2009-01-01', INTERVAL @num DAY ) <= '2012-01-01'
次の出力が得られます
date_sequence id
2009-01-01 46
2009-01-02 50
2009-01-03 55
2009-01-04 01
2009-01-05 02
2009-01-06 24
2009-01-07 57
2009-01-08 59
2009-01-09 74
2009-01-10 78
期待される出力は
date_sequence id
2009-01-01 NULL
2009-01-02 NULL
2009-01-03 NULL
2009-01-04 NULL
2009-01-05 NULL
2009-01-06 NULL
2009-01-07 NULL
2009-01-08 NULL
2009-01-09 74
2009-01-10 78
id は 09 と 10 のみ存在するため
日付を他のフィールドと一致させる方法は?
ヒント/コメント?
Rails ベースのソリューションも役立ちます。
編集:
これまでレールで試したこと
def create_dates(from_time,till_time)
dates = []
date_from = from_time.to_time
while date_from <= till_time.to_time && periods.length <= 100
dates << "#{date_from.to_date}"
date_from = date_from + 1.day
end
dates
終わり
指定された期間の間の日付を返します。しかし、私は自分のデータをこれらの日付と一致させることができません