我的报告中有一个条形图,在x轴上反映了属于某个类别的所有答案的百分比,而在y轴上则反映了类别:
还有两个类别未在y轴上显示:“弱”和“非常弱”,每个类别都收到零答案,因此具有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发表评论后进一步编辑:
由于数据集中根本没有选择“非常弱”和“弱”类别的值,因此类别出现的唯一位置是标签 - 使用表达式创建:
=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 :(得分:1)
图表只能显示要从数据集中显示数据的类别。如果您的数据库中不存在答案类别,则需要在适当的时候使用union all
值将0
硬编码到数据集中。
首选解决方案 - 假设您的数据库 包含所有可能答案的列表 - 将以首先返回所有可能答案然后聚合它们的方式编写查询,而不是直接回答给定的答案,因为您的数据集现在似乎在做。
假设表结构为:
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
对于给定的调查问卷,此查询将输出每个可能的问题,每个可能的答案以及选择答案的次数。显然这不符合自由文本或数字响应,但我确信如果需要,你可以解决这个问题。