我用这些行获得每日数据总量?
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。
感谢。
答案 0 :(得分:4)
使用
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
答案 1 :(得分:0)
为什么你使用3个不同的语句然后联合所有。这些可以在单个语句中完成,因为您的分组列是日期并且是相同的。但是,只有问题是您将获得一行,其中所有3个和作为列而不是3行。但是您可以使用unpivot来创建列到行。这样做会更有效,因为你只需要做一次而不是3次。在一张大桌子上,这可能会带来很大的性能提升。
关于按年和月的总和,它仅得到回答