Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 ssrs передать в подотчет параметр с множественным значением  [new]
YoungPadawan
Member

Откуда:
Сообщений: 5
Здравствуйте.
Суть проблемы:

В главном отчете имеется Набор данных с таким запросом:

with tbl as 
(
	select 1 as id, 'a' as value 
	union
	select 1 as id, 'b' as value
	union
	select 2 as id, 'c' as value
	union	
	select 2 as id, 'd' as value
)

select  * from tbl 


Который соответственно возвращает такие данные:
id value
1 a
1 b
2 c
2 d


Суть: Нужно передать в подотчет параметры сгрупированные по id. Что бы в итоге у меня получилось два подотчета. Один с параметрами id = 1, value = a,b (multivalue); второй - id = 2, value = с, d (multivalue);
23 ноя 17, 11:05    [20977295]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
iiyama
Member

Откуда:
Сообщений: 642
YoungPadawan,

select  *, STUFF((select ','+value from tbl t2 where t2.id=t1.id for xml path('') ),1,1,'') as [param2]
from tbl t1
23 ноя 17, 11:14    [20977324]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
iiyama
Member

Откуда:
Сообщений: 642
YoungPadawan,
Если версия позволяет
String_agg
23 ноя 17, 11:24    [20977361]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
iiyama
Member

Откуда:
Сообщений: 642
YoungPadawan,

Еще вариант
Рецепт от IDVT
P.S. не проверял
23 ноя 17, 11:35    [20977413]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
YoungPadawan
Member

Откуда:
Сообщений: 5
iiyama
YoungPadawan,

select  *, STUFF((select ','+value from tbl t2 where t2.id=t1.id for xml path('') ),1,1,'') as [param2]
from tbl t1


Спасибо. Ваш вариант рабочий. Но я передам строку, а не параметр с множественным значением. Поведение строки в запросе будет такое же как и у параметра, но все же это не параметр с множесвтенным значением.
23 ноя 17, 12:46    [20977620]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
iiyama
Member

Откуда:
Сообщений: 642
YoungPadawan,

If it looks like a duck, swims like a duck and quacks like a duck, then it probably is a duck (с)duck-test
23 ноя 17, 15:08    [20978081]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
YoungPadawan
Member

Откуда:
Сообщений: 5
iiyama
YoungPadawan,

If it looks like a duck, swims like a duck and quacks like a duck, then it probably is a duck (с)duck-test


В SSRS все таки параметр (multivalue) не строка а класс.
23 ноя 17, 17:13    [20978729]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5955
YoungPadawan
Но я передам строку, а не параметр с множественным значением. Поведение строки в запросе будет такое же как и у параметра, но все же это не параметр с множесвтенным значением.

Строка с разделителями в запросе вполне себе разбивается на набор записей.
23 ноя 17, 17:37    [20978864]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
ЕвгенийGEM
Member

Откуда:
Сообщений: 94
YoungPadawan, множественные параметры передаются через nvarchar(max), где разделителем выступает ; или , (точно не помню какой именно символ). Поэтому общий алгоритм:
1) выбор множественного отчета передать в хранимку например, а там обработать переданную строку
2) аналогично и наоборот
вот и весь подход-а как именно крутить и вертеть-решать вам
24 ноя 17, 09:34    [20979875]     Ответить | Цитировать Сообщить модератору
 Re: ssrs передать в подотчет параметр с множественным значением  [new]
IDVT
Member

Откуда:
Сообщений: 313
.....
В SSRS (multivalue) не строка, а одномерный массив. Конкретно ответы твоей задачи лежат тут + тут тебе нужно просто объединить формулы.
24 ноя 17, 09:48    [20979906]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить