SSRS 2005柱状图:当数据计数为零时,显示系列标签缺失



我有一个非常简单的图表,其中可能存在一个常见问题。我在网上搜索了好几个小时,但也没找到类似的情况。

我正在提取的基本内容包含created_by, person_id和风险评分风险评分可以是:

1非常低2低3适度稳定中度危险5高6 VERY HIGH

我想获得每个风险评分的人数,并显示风险计数,即使该风险评分的计数为0,但SSRS 2005喜欢抑制零计数。

我已经在点标签中尝试过了= IIF(绝非新鲜事(count(字段! person_id.value)), 0,计数(字段! person_id.value))

示例:我遗漏了"1 LOW"的值,因为创建者没有任何他们分配风险评分的"1 LOW"。

*这是我得到的一个屏幕截图,但我想有一个列,即使它仍然不存在于返回的结果计数。

@Nathan

示例场景:

select professor.name, grades.score, student.person_id from student
inner join grades on student.person_id = grades.person_id
inner join professor on student.professor_id = professor.professor_id
where student.professor_id = @professor

不是所有的学生都必须在成绩表中。

我有一个=Count(Fields!person_id.Value)为我的数据点&系列按=Fields!score分组。值

如果有一堆a,B,D成绩,但没有C &F是如何为可能不存在的计数显示标签

在您的示例中,问题是没有返回与任何学生没有关联的成绩。为了理想地解决这个问题,在你的源系统中应该有一个表,列出"分数"的所有可能值(例如a - F),你将把它连接到你的查询中,这样每个可能值至少返回一行。

如果这样的表不存在,并且可能的分数值是已知的和静态的,那么您可以在查询中手动创建它们的列表。在下面的示例中,我创建了一个子查询,它返回所有教授和所有可能的分数(a - F)的组合,然后将其左连接到成绩和学生表(左连接意味着即使"成绩"表中没有学生的分数,也将返回教授/分数行)。

SELECT 
    professor.name
  , professorgrades.score 
  , student.person_id
FROM
(
  SELECT professor_id, score
  FROM professor
  CROSS JOIN
   ( 
     SELECT 'A' AS score
     UNION
     SELECT 'B'
     UNION
     SELECT 'C'
     UNION
     SELECT 'D'
     UNION
     SELECT 'E'
     UNION
     SELECT 'F'
   ) availablegrades
 ) professorgrades
INNER JOIN professor ON professorgrades.professor_id = professor.professor_id
LEFT JOIN grades ON  professorgrades.score = grades.score
LEFT JOIN student ON grades.person_id = student.person_id AND 
              professorgrades.professor_id = student.professor_id
WHERE professorgrades.professor_id = 1

查看下面的实际示例:SQLFIDDLE

SELECT RS.RiskScoreId, RS.Description, SUM(DT.RiskCount) AS RiskCount
FROM (
    SELECT RiskScoreId, 1 AS RiskCount
    FROM People
    UNION ALL
    SELECT RiskScoreId, 0 AS RiskCount
    FROM RiskScores
) DT
INNER JOIN RiskScores RS ON RS.RiskScoreId = DT.RiskScoreId
GROUP BY RS.RiskScoreId, RS.Description
ORDER BY RS.RiskScoreId

最新更新