SSRS中实现今日、当月、当季及年度累计数据统计求助
解决方案
一、调整SQL查询语句
先修改SQL,通过条件聚合分别计算今日、当月、当季、本年的Hot leads总数,直接给SSRS提供所需数据集:
SELECT ISNULL(SUM(CASE WHEN CONVERT(date, dtReport) = CONVERT(date, GETDATE()) THEN intIntrosHot ELSE 0 END), 0) AS TodayHot, ISNULL(SUM(CASE WHEN DATEPART(month, dtReport) = DATEPART(month, GETDATE()) AND DATEPART(year, dtReport) = DATEPART(year, GETDATE()) THEN intIntrosHot ELSE 0 END), 0) AS MonthHot, ISNULL(SUM(CASE WHEN DATEPART(quarter, dtReport) = DATEPART(quarter, GETDATE()) AND DATEPART(year, dtReport) = DATEPART(year, GETDATE()) THEN intIntrosHot ELSE 0 END), 0) AS QuarterHot, ISNULL(SUM(CASE WHEN DATEPART(year, dtReport) = DATEPART(year, GETDATE()) THEN intIntrosHot ELSE 0 END), 0) AS YearHot FROM tblUBMReport WHERE tblUBMReport.intProp = 865 -- 单个值无需用IN,简化为=即可
如果需要支持自定义基准日期,把GETDATE()换成报表参数(比如@CurrentDate)即可。
二、SSRS表格设计步骤
- 创建数据集:在SSRS报表中新建数据集,粘贴上述SQL,确保数据库连接配置正确。
- 添加表格控件:从工具箱拖拽表格到报表设计区。
- 构建表格结构:
- 表头行:依次输入
今日Hot Leads、当月Hot Leads、当季Hot Leads、本年Hot Leads。 - 数据行:分别绑定数据集字段
TodayHot、MonthHot、QuarterHot、YearHot。 - (可选)总计行:若需要汇总,在表格底部添加总计行,单元格表达式写
=Fields!TodayHot.Value + Fields!MonthHot.Value + Fields!QuarterHot.Value + Fields!YearHot.Value。
- 表头行:依次输入
- 格式调整:
- 右键数据单元格→文本框属性→数字,设置为整数格式。
- 调整列宽、字体、对齐方式,匹配预期的表格样式。
- 预览验证:点击预览按钮,确认各时间段的Hot leads数据计算准确、显示正常。
补充说明
如果还需要展示Cold和Total的对应时间段数据,可在SQL中添加对应条件聚合的CASE语句(比如TodayCold、MonthTotal等),再在SSRS表格中新增列绑定即可。
内容的提问来源于stack exchange,提问作者Jeannie Ramirez
相关产品推荐
相关产品推荐

