Я хотел бы знать правильный метод для передачи значений параметра в ключевое слово VALUES в SQL в базовом наборе данных. Я использую Microsoft Report Builder v3.0, запрашиваю базу данных MS- SQL.
В настоящий момент, после большого количества поиска в Google и переполнения стека, я получил следующую хорошо работающую SQL для того, чтобы найти пациентов с кодами диагностики, начинающимися либо с "AB", либо с "X C":
SELECT
x.PatientId
FROM
(
VALUES
('AB%'),
('XC%')
) AS v (pattern)
CROSS APPLY
(
SELECT
p.PatientId,
p.LastName
FROM
dbo.Patient p
inner join Course c on (c.PatientSer = p.PatientSer)
inner join CourseDiagnosis cd on (cd.CourseSer=c.CourseSer)
inner join Diagnosis diag on (diag.DiagnosisSer=cd.DiagnosisSer)
WHERE
diag.DiagnosisCode like v.pattern
) AS x
;
Однако я хочу сделать поиск шаблонов, как сгенерированный по ключевому слову VALUES, которое будет сгенерировано, когда пользователь выбирает раскрывающийся список, соответствующий определенной группе шаблонов. Я использовал параметр для этого имени @Diagnoses с меткой «Группировка1» (позже будут другие группировки - я собираюсь сделать параметр многозначным) и значением «AB%», «XC%». , но это не работает - отчет запускается, но вообще ничего не возвращает, поэтому ясно, что я делаю что-то не так.
Я пытался избежать указания этих кодов диагностики непосредственно в предложении WHERE, используя " ИЛИ «ключевое слово», поскольку все, что я могу найти в этих строках, похоже, связано с использованием отдельно объявленных функций, и решение по шаблону / перекрестному применению показалось самым удачным.
Может кто-нибудь мне помочь?
Заранее спасибо.