Я пытаюсь написать запрос для отчета Altiris. Этот запрос ищет информацию о машине. Запрос работает нормально, но проблема, с которой я сталкиваюсь, связана с моими параметрами. Я настроил несколько параметров в Altiris, чтобы позволить мне фильтровать и искать в отчете по нескольким полям. Затем в своем запросе я добавляю эти параметры в операторы WHERE
.
Все параметры работали нормально, пока я не добавил параметры Make
и Model
. У нас есть немало машин, которые не имеют информации, заполненной этими полями. Поэтому, когда я добавляю WHERE xxxx LIKE N'%Make%'
, я теряю около 500 машин на его основе и теперь ищу только машины с чем-то в этой области. Я попытался исправить это, добавив строки, подобные следующим:
Where ((xxxx LIKE N'%Make%' OR xxxx is null))
Это сработало: теперь в отчете отображаются все машины ... Но если я введу "HP" в поле параметра Make
, а затем перезапущу отчет ... он покажет все машины HP, как я хочу, но также и все нулевые машины.
Как я могу переписать свои операторы where, чтобы они не исключали машины из отчета, и позволяли мне фильтровать по всем машинам HP, не показывая также нулевые значения?
Надеюсь, что это имело смысл, и спасибо
В этом фрагменте кода последние две строки заставляют меня потерять около 500 машин в общем количестве машин в отчете. Он опускает все машины с нулевыми значениями.
WHERE
(dbo.OS_Version.[OS Name] LIKE N'%OSName%') AND
(dbo.OS_Version.[OS Version] LIKE N'%Build%') AND
(dbo.OS_Version.Name LIKE N'%Name%') AND
(dbo.Inv_AeX_AC_Identification.[Hardware Serial Number] LIKE N'%Serial%') AND
(dbo.vHWComputerSystem.Manufacturer LIKE N'%Make%') AND
(dbo.vHWComputerSystem.Model LIKE N'%Model%')
Вот как я пытался это исправить, и теперь я получаю все 20 000 машин. Но мои поля make / model также содержат пустые поля.
WHERE
(dbo.OS_Version.[OS Name] LIKE N'%OSName%') AND
(dbo.OS_Version.[OS Version] LIKE N'%Build%') AND
(dbo.OS_Version.Name LIKE N'%Name%') AND
(dbo.Inv_AeX_AC_Identification.[Hardware Serial Number] LIKE N'%Serial%') AND
((dbo.vHWComputerSystem.Manufacturer LIKE N'%Make%') OR (dbo.vHWComputerSystem.Manufacturer is null)) AND
((dbo.vHWComputerSystem.Model LIKE N'%Model%') OR (dbo.vHWComputerSystem.Model is null))