Я читал бесчисленные сообщения по этой теме, но, похоже, я не могу получить какие-либо рекомендации по моей конкретной ситуации (которая не отличается от других. ..)Проблемы с использованием нескольких параметров в отчете SSRS (хранимая процедура)
У меня есть отчет SSRS. Dataset 1 использует хранимую процедуру, и в пункте, где я
and (@param is null or alias.column in
(select Item from dbo.ufnSplit(@param,',')))
Я одолжил функцию dbo.ufnSplit с этого поста здесь: https://stackoverflow.com/a/512300/22194
FUNCTION [dbo].[ufnSplit]
(@RepParam nvarchar(max), @Delim char(1)= ',')
RETURNS @Values TABLE (Item nvarchar(max))AS
--based on John Sansoms StackOverflow answer:
--https://stackoverflow.com/a/512300/22194
BEGIN
DECLARE @chrind INT
DECLARE @Piece nvarchar(100)
SELECT @chrind = 1
WHILE @chrind > 0
BEGIN
SELECT @chrind = CHARINDEX(@Delim,@RepParam)
IF @chrind > 0
SELECT @Piece = LEFT(@RepParam,@chrind - 1)
ELSE
SELECT @Piece = @RepParam
INSERT @Values(Item) VALUES(@Piece)
SELECT @RepParam = RIGHT(@RepParam,LEN(@RepParam) - @chrind)
IF LEN(@RepParam) = 0 BREAK
END
RETURN
END
В наборе 2 я получаю значения, Я хочу, чтобы перейти к набору данных 1
select distinct list from table
Мой параметр @param сконфигурирован, чтобы посмотреть на набор данных 2 доступных значений
Моя проблема в том, что если я выберу одно значение из раскрывающегося списка параметров для @param, отчет будет работать. Если я выберу несколько значений из раскрывающегося списка, я верну данные только для выбранного первого значения.
Мои ценности набора данных 2 не содержат какой-либо, 'ы
Я не пропустить что-нибудь для не в состоянии обеспечить достаточное количество информации? Я открыт для критики, обратной связи, и что нельзя делать для этого, я боролся с этой проблемой в течение некоторого времени, и не в коем случае не SQL эксперт :)
Приветствие, MD
Обновление Так SQL Profiler показывает мне это:
Exec зр ... @ пары = N'value1, значение2, value3 '
Вопросы являются: 1. не следует ли каждое значение быть завернуто в одиночных кавычках ? 2. Что такое N перед списком? 3. Угадывание конечных пробелов необходимо обрезать
Из пользовательского интерфейса обозначена строка с запятой? –
Используйте Profiler, чтобы узнать, какая команда SQL передается из SSRS на SQL Server. Затем вы узнаете, есть ли проблема в вашем proc или вашем отчете. Код, который вы показали до сих пор, выглядит правильно, поэтому проблема, вероятно, в какой-то другой части proc или report. –