首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql server -对一个月/一年内的总计进行汇总

sql server -对一个月/一年内的总计进行汇总
EN

Stack Overflow用户
提问于 2012-03-21 06:00:30
回答 1查看 1.1K关注 0票数 1

我正在制作一个sql server报告,在报告的底部显示每日、每月和每年的运行总数。

通过获取"timestamp“字段的datediff和getdate()并返回= 0的行,我了解了如何制作每日报告。这样,我知道日期的差异是0天,因此是每日总数的一部分。

我遇到了一个问题,那就是用月和年来做这件事的好方法。这是我的月份计算查询,它给了我更多的结果(我有另一个表,我正在用它来仔细检查我的计算)。我应该得到大约300作为我的总数,但下面的查询给我大约7400。只差一点)

代码语言:javascript
复制
     SELECT     SUM(Rc0) AS Good, 
                      SUM(Rc0 + Rc1 + Rc2 + Rc3 + Rc4 + Rc5 + Rc6 + Rc7 + Rc8 + Rc9 + Rc10 + Rc11 + Rc12 + Rc13 + Rc14 + Rc15 + Rc16 + Rc17 + Rc18 + Rc19 + Rc20 + Rc21 + Rc22 + Rc23
                       + Rc24 + Rc25 + Rc26 + Rc27 + Rc28 + Rc29 + Rc30 + Rc31 + Rc32 + Rc33 + Rc34 + Rc35 + Rc36 + Rc37 + Rc38 + Rc39 + Rc40) AS Not_Good  
FROM         someTable WHERE     (MONTH(timestamp) = MONTH(GETDATE())) and (YEAR(timestamp) = YEAR(GETDATE()))

edit:给出相同结果的另一种查询形式

代码语言:javascript
复制
SELECT     SUM(Rc0) AS Good, 
                      SUM(Rc0 + Rc1 + Rc2 + Rc3 + Rc4 + Rc5 + Rc6 + Rc7 + Rc8 + Rc9 + Rc10 + Rc11 + Rc12 + Rc13 + Rc14 + Rc15 + Rc16 + Rc17 + Rc18 + Rc19 + Rc20 + Rc21 + Rc22 + Rc23
                       + Rc24 + Rc25 + Rc26 + Rc27 + Rc28 + Rc29 + Rc30 + Rc31 + Rc32 + Rc33 + Rc34 + Rc35 + Rc36 + Rc37 + Rc38 + Rc39 + Rc40) AS Not_Good
FROM         someTable
WHERE     convert(varchar(7), timestamp, 126) = convert(varchar(7), getdate(), 126)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-21 06:49:07

--作为一种包括大多数跨度的通用分组.....

SELECT 'Year‘= DATEPART(Yy,rowdate),'Month’= DATEPART(Mm,rowdate),'Week‘= DATEPART(wk,rowdate),'Total’=sum(您的数字字段)

来自sometable

GROUP BY DATEPART(Yy,rowdate)、DATEPART(Mm,rowdate)、DATEPART(wk,rowdate)

ORDER BY DATEPART(Yy,rowdate),DATEPART(Mm,rowdate),DATEPART(wk,rowdate)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9795669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档