От одного до многих наборов данных SQL Можно ли вернуть список разделенных запятыми в SSRS? - PullRequest
0 голосов
/ 19 июля 2010

Я возвращаю набор данных 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 M GBI-40
6141C GBI-40

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

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

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

1 Ответ

0 голосов
/ 19 июля 2010

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

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

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

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

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

use Northwind

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

select ‘Results = ‘ + @CategoryList

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...