SSRS报表图例与数据显示异常问题求助
解决SSRS图表日期分类异常问题
你的SQL脚本存在逻辑缺口:只有Overdue = 1的行才会生成Category分类值,所有Overdue <> 1的行都会返回NULL。SSRS图表默认会将NULL值的行归为一个单独分组,这就是你看到的“来源不明的98%数据”的原因——这部分其实是所有非逾期的数据,而符合条件的逾期分类因为占比太小,可能被图表默认隐藏或未正确展示。
修复方案
方案1:补全CASE语句的ELSE分支,明确归类非逾期数据
如果需要展示所有数据,给Overdue <> 1的行指定明确分类:
CASE WHEN Overdue = 1 THEN CASE WHEN DATEDIFF(DAY, A.TARGET_DATE, GETDATE()) <= 30 THEN '0-1 Month' WHEN DATEDIFF(DAY, A.TARGET_DATE, GETDATE()) <= 182 THEN '1-6 Months' WHEN DATEDIFF(DAY, A.TARGET_DATE, GETDATE()) <= 365 THEN '6-12 Months' ELSE '> 12 Months' END ELSE '未逾期' -- 自定义非逾期分类名称 END AS Category,
方案2:过滤非逾期数据,只保留需要分类的行
如果不需要展示非逾期数据,直接在查询中过滤掉:
SELECT CASE WHEN DATEDIFF(DAY, A.TARGET_DATE, GETDATE()) <= 30 THEN '0-1 Month' WHEN DATEDIFF(DAY, A.TARGET_DATE, GETDATE()) <= 182 THEN '1-6 Months' WHEN DATEDIFF(DAY, A.TARGET_DATE, GETDATE()) <= 365 THEN '6-12 Months' ELSE '> 12 Months' END AS Category, -- 其他需要查询的字段 FROM 你的数据表 A WHERE Overdue = 1 -- 仅筛选逾期数据
方案3:检查SSRS图表配置
- 确认图表的分组依据是
Category字段,没有额外的分组层级 - 进入图表的「系列属性」,验证数据值的聚合方式(如
COUNT(*)或SUM(数值字段))符合需求 - 关闭图表的「隐藏小系列」选项(如果开启的话),确保所有分类都能在图例中显示
内容的提问来源于stack exchange,提问作者gby
相关产品推荐
相关产品推荐

