0

現在、特定の日のデータがある場合とない場合があるテーブルがあります。ただし、他の列にはすべての日付と空白のデータが入力されたデータセットを返したいと思います。「すべての日付」が保存されている別のテーブルを考えました。ビューはこれを達成するのに役立ちます。もっと良い方法があれば教えてください。

表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

2つのテーブルを結合して、UserId =1である9月のこのデータセットを返したいと思います。

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
4

1 に答える 1

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
于 2012-09-28T16:31:03.430 に答える