#parameters #default-value #reportbuilder3.0 #multiple-value
Вопрос:
У меня есть набор из 14 запросов, которые ищут аномальные данные на основе некоторых шаблонов в предложениях WHERE. Такие вещи, как люди с «Неизвестными» фамилиями, фальшивыми адресами и т. Д. Мне было поручено составить краткое описание всех этих аномалий. Я попытался поместить их все в одно большое предложение WHERE с множеством операторов OR, но оно стало слишком большим и истекло по времени.
Итак, теперь у меня есть эти 14 запросов, которые ищут значения Person_ID и передают эти списки в качестве значений параметров по умолчанию. Затем у меня есть еще один запрос, который возвращает определенное количество значений Person_ID, которые отображаются во всех параметрах. Это работает до тех пор, пока не будет исправлен весь набор аномалий. Затем этот запрос возвращает нулевые результаты, и мой параметр выдает сообщение об ошибке.
Вот пример одного из 14 запросов об аномалиях.
SELECT DISTINCT PERSON_ID AS PregnantMalePersonID FROM PERSON LEFT OUTER JOIN PERSON_HEALTH ON PERSON.PERSON_ID = PERSON_HEALTH.PERSON_ID AND PERSON.CREATED_DATE = PERSON_HEALTH.CREATED_DATE WHERE PERSON.DISCARDED_DATE IS NULL AND PERSON_HEALTH.PREGNANT_CODE = N'Yes' AND PERSON_HEALTH.GENDER_CODE = N'Male'
Вот сокращенная версия моего сводного запроса.
SELECT DISTINCT PERSON_ID FROM PERSON LEFT OUTER JOIN PERSON_HEALTH ON PERSON.PERSON_ID = PERSON_HEALTH.PERSON_ID AND PERSON.CREATED_DATE = PERSON_HEALTH.CREATED_DATE WHERE PERSON.STATUS_CODE = N'1' AND ( PERSON_ID IN (@Dependents) PERSON_ID IN (@InvalidName) PERSON_ID IN (@PregnantMale) PERSON_ID IN (@StateOfResidence) )
Когда пример аномалии возвращает нулевые результаты, я получаю эту ошибку.
«В параметре ‘PregnantMale’ отсутствует значение».
Мои параметры настроены так, чтобы разрешить несколько значений, но я также не могу разрешить значения null. Есть ли способ обойти это? (Я видел еще один ответ о том, чтобы где-то вставить оператор UNION ALL в мой запрос, но я не мог понять, как это сделать.)