现在我有一张表可能有也可能没有特定日期的数据。但是,我想返回一个数据集,其中包含所有日期和填写其他列的空白数据。我想到另一个表中存储了“所有日期”,一个视图可以帮助我实现这一目标。如果有更好的方法,请告诉我。
表1
UserId Date Value1
1 9/2/2012 10
2 9/15/2012 5
1 9/17/2012 12
1 9/23/2012 4
2 9/25/2012 7
AllDates (记录了未来10年的每个日期)
Date
1/1/2012
1/2/2012
1/3/2012
...
...
...
12/31/2020
我想加入这两个表来返回9月份UserId = 1的数据集:
UserId Date Value1
1 9/1/2012 NULL
1 9/2/2012 10
1 9/3/2012 NULL
...
...
...
1 9/16/2012 NULL
1 9/17/2012 12
1 9/18/2012 NULL
...
...
...
1 9/23/2012 4
...
...
...
1 9/29/2012 NULL
1 9/30/2012 NULL
答案 0 :(得分:3)
select a.Date, t.Value1
from AllDates a
left outer join table1 t on a.Date = t.Date and t.UserID = 1
where year(a.Date) = 2012 and month(a.Date) = 9
order by a.Date