You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:45:02