3

我得到这些行的每日数据总和?

SELECT convert(varchar, okuma_tarihi, 102) as Gunler,SUM(toplam_kullanim_T1) as TotalUsageValue,'T1' as UsageType FROM TblSayacOkumalari
GROUP BY convert(varchar, okuma_tarihi, 102)
UNION ALL
SELECT convert(varchar, okuma_tarihi, 102) as Gunler,SUM(toplam_kullanim_T2) as TotalUsageValue,'T2' as UsageType FROM TblSayacOkumalari 
GROUP BY convert(varchar, okuma_tarihi, 102)
UNION ALL
SELECT convert(varchar, okuma_tarihi, 102) as Gunler,SUM(toplam_kullanim_T3) as TotalUsageValue,'T3' as UsageType FROM TblSayacOkumalari
GROUP BY convert(varchar, okuma_tarihi, 102)

如何每周或每月获得数据总和?有没有关于这个主题或代码示例的教程?当我写MONTH(DATE)而不是convert(varchar, okuma_tarihi, 102)它显示时,例如该月的所有数据总和。(2010 年 6 月值 + 2011 年 6 月值)。我不想要这个。我使用 MSSQL Server 2008。

谢谢。

4

2 回答 2

5

采用

GROUP BY YEAR(<date_column_name>),MONTH(<date_column_name>) --for months

或者

GROUP BY YEAR(<date_column_name>),DATEPART(wk,<date_column_name>) --for weeks
于 2012-07-11T12:51:15.147 回答
0

为什么要使用 3 种不同的语句,然后全部合并。这些可以在单个语句中完成,因为您的分组列是日期并且是相同的。但是,唯一的问题是您将获得一行,所有 3 个总和作为列而不是 3 行。但是您可以使用 unpivot 来制作列到行。这将更有效,因为您只做一次而不是 3 次。在大桌子上,它可能会大大提高性能。

关于年和月的总和,它只得到了回答

于 2012-07-14T13:32:19.453 回答