【发布时间】:2014-09-30 11:08:43
【问题描述】:
所以我有一个查询来从日志表中提取一个时间范围内的错误计数并显示每分钟的计数。
select DATEADD(MI, DATEDIFF(MI, 0, errors),0), COUNT(*) from log
where errors> '2014-07-23 17:20'
and errors < '2014-07-23 17:25'
group by DATEADD(MI, DATEDIFF(MI, 0, errors),0)
如果一分钟内没有错误,它将忽略该行:
2014-07-23 17:20:00.000 20
2014-07-23 17:21:00.000 20
2014-07-23 17:23:00.000 20
2014-07-23 17:24:00.000 19
即使没有错误,我怎样才能让它填充一行。例如。上面的输出会有如下一行:
2014-07-23 17:22:00.000 0
【问题讨论】:
-
在这种情况下,它没有显示,因为 2014-07-23 17:22:00.000 没有从 DATEADD(MI, DATEDIFF(MI, 0, errors),0) 返回。
-
您需要创建一个包含您的时间范围内所有分钟的表格/视图,并使用您的表格
LEFT JOIN它。
标签: sql sql-server