我有一个带有2列的SQL表,如下所示
Column1:ProductionDate - DateTime - Not NULL
Column2:Quantity - Int - Not NULL
现在表中有2条记录
1-1-2012,5
1-3-2012,7
如果我将日期范围StartDate设为1-1-2012并将EndDate设为1-15-2012
,则结果输出应如下所示1-1-2012 5
1-2-2012 0
1-3-2012 7
1-4-2012 0
1-5-2012 0
1-6-2012 0
1-15-2012 0
表示查询应返回给定范围的所有日期和数量,如果表中没有条目,则0表示数量。
怎么做?请使用查询建议
答案 0 :(得分:0)
这是关于你可以使用什么的非常乐观的草稿(来源 - here)
declare @startDate datetime;
declare @endDate datetime;
set @startDate = '2012-02-09';
set @endDate = '2012-02-15';
WITH span AS (
SELECT @startDate AS dt
UNION ALL
SELECT DATEADD(dd, 1, dt)
FROM span s
WHERE DATEADD(dd, 1, dt) <= @endDate)
select s.dt, t.Quantity from span s
join table t
on s.dt = t.ProductionDate