使用SSRS对表中的项进行分组和汇总

时间:2010-11-15 20:39:19

标签: sql reporting-services

我有一份SSRS报告,我试图有条件地总结行数。我有:

11/15/2010 12:14:43 AM |当前费率|当前速度|该分钟使用的金额(速度*费率/ 60) 等等等

我正在尝试添加一小时内发生的所有行,以便我的报告显示:

11/15/2010 |上午12点 - 凌晨1点|用于该小时的金额(例如,7加仑)

我找不到任何地方如何每小时有条件地总结一行,或者如何让我的报告说出上述内容。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用下表进行测试:

CREATE TABLE `log` (
  `entry_date` datetime DEFAULT NULL,
  `amount_used` int(11) DEFAULT NULL
)

有一些测试数据:

entry_date           amount_used
2010-11-01 10:00:00, 3
2010-11-01 10:30:00, 1
2010-11-01 11:00:00, 6

使用此查询获取日期,小时范围和使用的总金额:

SELECT DATE(entry_date) AS entry_date, 
    CONCAT_WS('-',CONVERT(MIN(HOUR(entry_date)), char(2)), CONVERT(MAX(HOUR(entry_date)),CHAR(2))) hours,
    SUM(amount_used) amount_used
FROM (
    SELECT entry_date, SUM(amount_used) AS amount_used 
    FROM log
    GROUP BY DATE(entry_date), HOUR(entry_date)
    ) T;

所有CONCAT / CONVERT内容只是为了获得该特定日期的小时数,作为一个字符串。这是结果:

entry_date  hours  amount_used
2010-11-01, 10-11, 10