SQL按规定的时间段进行统计

_chan_ 2014-07-14 04:17:39
简化后的表如下图,大致意思就是:按“编号”分组,统计“时间”的总数(应该是用sum)。
问题在于:我需要按时间段来统计,比如我统计7.1-7.31的,那么“日期”为null和2014-06-28的几项统计出来都应该是0。
就是说分组统计后的数据都得显示出来,不在时间段内的话,“时间”字段就用0表示。怎么实现?求大神解救!!!!
...全文
158 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
_chan_ 2014-07-14
  • 打赏
  • 举报
回复
引用 2 楼 Tiger_Zhao 的回复:
  SELECT 编号
         SUM(CASE WHEN 日期 BETWEEN '2014-07-01 00:00:00.000' AND '2014-07-31 23:59:59.999'
                  THEN 时间
                  ELSE 0
                  END) AS 合计时间
    FROM 表1
GROUP BY 编号
自己已经解决了,方法跟您的类似,谢谢捧场~~
Tiger_Zhao 2014-07-14
  • 打赏
  • 举报
回复
  SELECT 编号
SUM(CASE WHEN 日期 BETWEEN '2014-07-01 00:00:00.000' AND '2014-07-31 23:59:59.999'
THEN 时间
ELSE 0
END) AS 合计时间
FROM 表1
GROUP BY 编号
向东流 2014-07-14
  • 打赏
  • 举报
回复
能不能给个预期结果,看文字总会理解错误

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧