开发查询以显示所有日期并用零填充缺失值
使用日期范围时,通常有必要考虑缺少数据点。本综合指南提供了一个解决方案,解决显示两个给定日期之间的所有日期并向缺失行分配零值的问题。
为了解决此问题,我们可以利用名为“d”的公用表表达式 (CTE) 。此 CTE 生成指定范围内的一系列日期。然后,我们可以在 CTE 和原始“临时”表之间执行左连接以获得所需的结果。
这是修改后的查询:
;with d(date) as ( select cast('10/01/2012' as datetime) union all select date+1 from d where date < '10/15/2012' ) select t.ID, d.date CDate, isnull(t.val, 0) val from d left join temp t on t.CDate = d.date order by d.date OPTION (MAXRECURSION 0) -- use this if your dates are >99 days apart
此修改后的查询确保所有缺失捕获日期,并用零填充相应的“val”列。添加“OPTION (MAXRECURSION 0)”语句来处理日期范围超过 99 天的情况。
以上是如何使用 SQL 显示某个范围内的所有日期并用零填充缺失值?的详细内容。更多信息请关注PHP中文网其他相关文章!