2016-04-12 5 views
0

У меня есть простой опрос, который мне нужно сообщить об использовании SSRS.объединение нескольких результатов в одну строку в SSRS

У этого есть 2 вопроса. Один вопрос может иметь несколько вариантов, как показано ниже:

Как вас зовут?

Подберите свои любимые цвета (Red, Blue, Green, Yellow, Brown, Purple)?

Здесь приведены примеры результатов запроса:

Tim  Red 
Tim  Blue 
Tim  Green 
Mary  Yellow 
George Brown 
George Red 
Jill  Purple 

Я хотел бы объединить их, как это так, что все они появляются на одной строке в отчете с указанием выбранных ответов жирным (или другого цвета) и невыбранные ответы так же, как и обычный текст.

Tim:Красный, Синий, Зеленый, желтый, коричневый, фиолетовый

Mary: красный, синий, зеленый, Желтый, коричневый, фиолетовый

George:Красный, Синий , Зеленый, Желтый, Коричневый цвет, Фиолетовый

Jill: красный, синий, зеленый, желтый, коричневый, фиолетовый

Я попытался с помощью этого выражения в своем докладе:

Join(Fields!favoriteColors.Value, ", ") 

Однако я бы просто увидеть #Error в моем докладе.

Возможно ли подобное в SSRS 2008R2?

+1

Пожалуйста, объясните, какие инструменты или технологию вы используете. –

+1

Используют ли ваши пользователи параметры для заполнения опроса? Или вы сообщаете результаты из существующей базы данных? –

+0

@alejandrozuleta Я использую набор данных из базы данных. Параметры отчета отсутствуют. Спасибо – SkyeBoniwell

ответ

1

К сожалению, JOIN не работает на основе группировки, как вы думаете.

Вы можете обмануть и сделать это таким образом, в вашей ситуации:

=JOIN(LOOKUPSET(Fields!Name.Value, Fields!Name.Value, Fields!Color.Value, "DataSet1"), ", ") 

Это будет искать значения в наборе данных на основе Имени и комбинировать Цвета с запятой разделителем.

Но это только получит цвета - не все цвета. Я думаю, вам понадобится еще один запрос для неокрашенных цветов и их сочетания. Вы можете использовать разметку HTML для жирным шрифтом ening.

="<b>" & JOIN(LOOKUPSET(Fields!Name.Value, Fields!Name.Value, Fields!Color.Value, "DataSet1"), ", ") 
& "</b>" & JOIN(LOOKUPSET(Fields!Name.Value, Fields!Name.Value, Fields!Color.Value, "DataSet2"), ", ") 

Запрос для несорванных цветов:

SELECT Name, Color FROM 
(select DISTINCT Color from #COLORS) C 
CROSS JOIN 
(select DISTINCT Name from #COLORS) N 
EXCEPT SELECT Name, Color FROM #COLORS 
+0

Для этого потребуется отдельный набор данных? Или я могу использовать только существующую? Благодаря! – SkyeBoniwell

+1

Для неокрашенных цветов вам понадобится отдельный набор данных с запросом, чтобы идентифицировать каждого пользователя без цветов, или вы могли бы написать функцию VB в SSRS, чтобы сделать это, хотя VB будет немного больше работать. –

+1

Я добавил пример запроса, основанный на вашем наборе данных для рассылок. –

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