У меня есть отчет, для которого я пытаюсь добавить параметр в построителе отчетов, но у меня возникают проблемы именно с тем, что мне нужно сделать, чтобы пройти через выбранное значение параметра при запуске отчета в SQL отчета, учитывая, что выбор параметра отличается от значение хранится в таблице.
Что я имею в виду под этим:
В таблице есть поле, к которому обращается запрос: ErrorLevel
, в котором хранятся числовые значения (1, 2, 3, 4). Однако каждому из этих значений соответствует текстовая строка.
1 - Предупреждение;
2 - Переопределить;
3 - ограничение;
и 4 ожидают рассмотрения.
Эти текстовые строки - это то, что отображается при фактическом запуске отчета. Я могу просто создать параметр, используя следующий запрос.
Параметр №. 1
SET NOCOUNT ON
(Select '' as errorlevel
union
select distinct errorlevel from [TABLE]
where errorlevel is not null and errorlevel != ''
Отчет SQL
Select distinct
case errorlevel
When 1 then 'Warning'
When 2 then 'Override'
When 3 then 'Restriction'
When 4 then 'Pending'
Else '' as errorlevel
from [TABLE]
where ('<ALL>' in (@errorlevel) or errorlevel in (@errorlevel))
Но проблема в том, что когда конечный пользователь запускает отчет и выбирает отчет, он видит числовые значения (1, 2, 3 или 4), но ему хотелось бы видеть / выбирать строковые значения (Предупреждение, Переопределение, ограничение, ожидание).
Я попытался использовать следующий запрос.
Параметр № 2
SET NOCOUNT ON
(Select '<ALL>' as errorlevel
union
select distinct
CASE ErrorLevel
When 1 then 'Warning'
When 2 then 'Override'
When 3 then 'Restriction'
When 4 then 'Pending'
Else '' as errorlevel
from [TABLE]
where errorlevel is not null and errorlevel != ''
Когда я использую это, параметр передает строковые значения SQL в отчете в виде строки, а не в виде числа, и тогда отчет остается пустым. Я знаю, что должен сделать что-то в SQL, чтобы взять то, что передается параметром (например, Warning, Override и т. Д.), И преобразовать это в соответствующие числовые значения, но не уверен, как это сделать. Любое руководство приветствуется.