0

У меня есть гистограмму в моем докладе, который, по оси абсцисс, отражает процент всех ответов, которые попадают в категорию, а на оси ординат, отражает категории:Как я могу получить ярлыки категории оси Y на гистограмме, когда категория не имеет значений x?

enter image description here

Есть еще две категории, которые не отображаются на оси y: «Слабые» и «Очень слабые», каждая из которых получает нулевые ответы и поэтому имеет значение 0%.

Мне все еще нужны эти две категории, чтобы отображаться на оси y, хотя и не смогли этого сделать.

EDIT на @ просьбе R.Richards':

График создается путем составления данных из этого запроса:

SELECT multiple_choice FROM mytable 

... где multiple_choice находится поле со значениями от 1 до 5 .

категория диаграмма multiple_choice и значения основаны на выражении

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

ДАЛЕЕ EDIT после комментария от @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", ""))))) 
+1

Можете ли вы добавить к этому вопросу запрос для набора данных, который использует этот график? –

+0

@ R.Richards отредактирован в соответствии. –

+1

Действительно ли ваш набор данных возвращает строку для категории «Слабая» и «Очень слабая»? – iamdave

ответ

1

В диаграмме могут отображаться только категории, для которых есть данные для отображения из вашего набора данных. Если категорий ответов не существует в вашей базе данных, вам необходимо будет скопировать union all в ваш набор данных с соответствующими значениями 0.

Предпочитаемое решение - допущение, что ваша база данных содержит список всех возможных ответов - будет ли писать ваш запрос таким образом, чтобы он сначала возвращал все возможные ответы, а затем собирался против них, вместо того чтобы идти прямо данные ответы, как кажется, сейчас ваш набор данных.


Предполагая таблицу структуры:

  • Вопросников
    • который содержит все сведения о конкретной анкете.
  • Вопросы
    • Который держит все вопросы для каждой анкеты.
  • QuestionAnswers
    • который содержит все возможные ответы на каждый вопрос.
  • Ответы
    • который содержит запись для каждого ответа, который был выбран.

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 

Этот запрос будет выводить - для данного вопросника - каждый возможный вопрос, каждый возможный ответ и подсчета, сколько раз был выбран этот ответ. Очевидно, что это не удовлетворяет бесплатные текстовые или числовые ответы, но я уверен, что вы сможете это сделать, если это необходимо.

+0

Спасибо, @iamdave - это очень помогает, и я расскажу о своем дизайне для этого типа БД. Я ценю, что вы потратили время, чтобы разобрать это для меня! –

 Смежные вопросы

  • Нет связанных вопросов^_^