我有一个数据表,我想通过存储的proc进行选择,以便用户可以将MS excel前端连接到该表,并使用原始数据作为图形源。
该表的原始数据的问题在于日期之间存在间隙,因为如果给定日期没有数据(该日期没有记录),那么当用户尝试对其进行绘图时,它会产生问题。
我也想将存储的proc更新到日期的临时表的左侧外部联接,以便右侧将以null形式出现,我可以将其强制转换为零,以使它们具有简单的绘图体验。
我如何最好地生成一个开始日期和结束日期之间的日期的字段表?
在SQL Server 2005及更高版本中,您可以使用以下命令(通用表表达式CTE)来执行此操作:
DECLARE @DateFrom DATETIME SET @DateFrom = '2011-01-01' DECLARE @DateTo DATETIME SET @DateTo = '2011-01-10' ;WITH DateRanges AS ( SELECT @DateFrom AS 'DateValue' UNION ALL SELECT DATEADD(DAY, 1, DateValue) FROM DateRanges WHERE DateValue < @DateTo ) SELECT * FROM DateRanges
您可以LEFT OUTER JOIN将此CTE放在表上并返回结果。
LEFT OUTER JOIN