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

Откуда:
Сообщений: 5
Доброго времени суток!
Ситуация такая: есть отчет на выборку пачек и ящиков из базы. Номера пачек вводятся пользователем в многозначный параметр @Item. Вот сокращенный запрос:
select bi.ItemID,bi.BoxID
from tblBoxItem bi
where ItemID in (@Item)

Вопрос: как вывести все значения, которые ввел пользователь, даже если их нет в базе?
Пока что вижу выход только в создании дополнительной таблицы со всеми возможными значениями ItemID и переписания запроса в таком виде:
select N.Number,bi.BoxID
from Numbers N
left join tblBoxItem bi on N.Number=bi.ItemID
where Number in (@Item)

Может у кого-то найдется более изящное решение без создания дополнительной таблицы?
Буду очень признателен.
28 дек 11, 13:10    [11838843]     Ответить | Цитировать Сообщить модератору
 Re: SSRS Вывод всех значений из multivalue parametеr  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Сделать контрол или поле со значением
=Join(Parameters!Item.Value, ",")
28 дек 11, 14:07    [11839373]     Ответить | Цитировать Сообщить модератору
 Re: SSRS Вывод всех значений из multivalue parametеr  [new]
xepocumbl4
Member

Откуда:
Сообщений: 5
Я, наверно, не совсем точно сформулировал вопрос. Мне требуется чтобы в таблице напротив каждого значения параметра стояло либо null, если в базе такого нет, либо значение из базы. То что вы предлагаете будет выводить в поле абсолютно все значения параметра, что для пользователя малоинформативно.
28 дек 11, 14:38    [11839675]     Ответить | Цитировать Сообщить модератору
 Re: SSRS Вывод всех значений из multivalue parametеr  [new]
Jovanny
Member

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

Тогда что-то типа такого:
WITH Numbers AS
(SELECT @MinValue AS Number
UNION ALL
SELECT Number + 1 FROM CTE 
WHERE Numbers.Number < @MaxValue
)
select N.Number,bi.BoxID
from Numbers N
left join tblBoxItem bi on N.Number=bi.ItemID
where Number in (@Item)
OPTION (MAXRECURSION 0)


Только задать нужно @MinValue и @MaxValue. Лучше всего посчитать из заданных @Item.
28 дек 11, 18:25    [11841684]     Ответить | Цитировать Сообщить модератору
 Re: SSRS Вывод всех значений из multivalue parametеr  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Прошу прощения.
WITH Numbers AS
(SELECT @MinValue AS Number
UNION ALL
SELECT Number + 1 FROM Numbers
WHERE Numbers.Number < @MaxValue
)
select N.Number,bi.BoxID
from Numbers N
left join tblBoxItem bi on N.Number=bi.ItemID
where Number in (@Item)
OPTION (MAXRECURSION 0)
28 дек 11, 18:41    [11841800]     Ответить | Цитировать Сообщить модератору
 Re: SSRS Вывод всех значений из multivalue parametеr  [new]
xepocumbl4
Member

Откуда:
Сообщений: 5
Спасибо! Завтра попробую
28 дек 11, 19:29    [11842063]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить