当类别没有 x 值时,如何让 y 轴类别标签显示在条形图中?

How can I get y-axis category labels to appear in a bar chart when the category has no x values?

我的报告中有一个条形图,它在 x 轴上反映了属于某个类别的所有答案的百分比,在 y 轴上反映了类别:

还有两个类别未显示在 y 轴上:"Weak" 和 "Very weak",每个类别都收到零个答案,因此值为 0%。

不过,我仍然需要将这两个类别显示在 y 轴上,但未能实现。

根据@R.Richards' 请求进行编辑:

正在通过从该查询中绘制数据来创建图表:

SELECT multiple_choice FROM mytable

...其中 multiple_choice 是一个值介于 1 和 5 之间的字段。

图表类别为multiple_choice,数值基于表达式

=Count(Fields!multiple_choice.Value) / Count(Fields!multiple_choice.Value, "ChartName")

根据@iamdave 的评论进一步编辑:

由于在数据集中根本没有选择类别 "Very Weak" 和 "Weak" 的值,因此类别出现的唯一位置是在标签中 - 这是使用表达式创建的:

=iif(Fields!multiple_choice.Value = 1, "Very weak",
 iif(Fields!multiple_choice.Value = 2, "Weak",
 iif(Fields!multiple_choice.Value = 3, "Somewhere in the middle",
 iif(Fields!multiple_choice.Value = 4, "Strong", 
 iif(Fields!multiple_choice.Value = 5, "Very strong", "")))))

图表只能显示数据集中有数据可显示的类别。如果您的数据库中不存在答案类别,您需要在适当的地方使用 0 值将 union all 硬编码到数据集中。

首选解决方案 - 假设您的数据库 确实 包含所有可能答案的列表 - 将以首先 returns 所有可能的答案,然后针对它们进行汇总,而不是像您的数据集现在所做的那样直接找到给定的答案。


假设 table 结构为:

  • 问卷调查
    • 其中包含有关特定问卷的所有详细信息。
  • 问题
    • 其中包含每份问卷的所有问题。
  • 问题答案
    • 其中包含每个问题的所有可能答案。
  • 答案
    • 它为每个已选择的答案保存一条记录。

select q.QuestionnaireName
      ,qu.QuestionName
      ,qa.QuestionAnswer
      ,count(a.Answer) as Responses

from Questionnaires q
    inner join Questions qu
        on q.QuestionnaireID = qu.QuestionnaireID
    inner join QuestionAnswers qa
        on qu.QuestionID = qa.QuestionID
    left join Answers a
        on qa.QuestionAnswerID = a.QuestionAnswerID

where q.QuestionnaireID = @YourReportParameter

group by q.QuestionnaireName
        ,qu.QuestionName
        ,qa.QuestionAnswer

对于给定的问卷,此查询将输出每个可能的问题、每个可能的答案以及该答案被选择的次数。显然这不适合自由文本或数字回复,但我相信如果需要您可以解决这个问题。