От набора данных SQL от одного ко многим Могу ли я вернуть список разделенных запятыми в SSRS?

Я возвращаю набор данных SQL в SSRS (Microsoft SQL Server Reporting Services) с отношением один ко многим, например:

ID REV Событие

6117 B FTG-06a
6117 B FTG-06a PMT
6117 B GTI-04b
6124 A GBI-40
6124 A GTI-04b
6124 A GTD-04c
6136 М GBI-40
6141 C GBI-40

Я хотел бы отобразить его в виде поля с разделителями-запятыми в последнем столбце [Событие] примерно так:

ID REV Событие
6117 B FTG-06a, FTG-06a PMT, GTI-04b
6124 A GBI-40, GTI-04b, GTD-04c
6136 М GBI-40
6141 C GBI-40

Есть ли способ сделать это на стороне вещей SSRS?

1 ответ

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

Помните, базы данных существуют для работы с данными. Отчет следует использовать только для уровня представления, так что нет необходимости утомлять себя попыткой получить функцию для анализа этих данных.

Лучше всего сделать это на уровне "sproc" и отправить данные из "sproc" в отчет.

Исходя из ваших правок, вот как вы это сделаете:

Для согласования полей взгляните на COALESCE. Затем вы получите строку concat всех значений, которые вы перечислили. Вот пример:

use Northwind

declare @CategoryList varchar(1000)
select @CategoryList = coalesce(@CategoryList + ‘, ‘, ”) + CategoryName from Categories

select ‘Results = ‘ + @CategoryList

Теперь, поскольку у вас есть дополнительное поле, а именно значение идентификатора, вы не можете просто добавить значения к запросу, вам нужно будет использовать CURSOR, иначе вы получите печально известную ошибку о включении дополнительных полей в вычисляемый запрос.

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

Другие вопросы по тегам