Я пытаюсь создать собственный отчет в SCCM, который скажет мне, установлен ли конкретный КБ в пуле серверов и возвращает двоичный ответ (в этом случае да или нет).Отчет SCCM для возврата статуса КБ на серверы
Проблема у меня есть, я не могу заставить ее вернуть статус только одного КБ. Я бегу это:
SELECT
SYS.Name0 'Computer',
SYS.operatingSystem0 'OS',
UIN.Title 'Update',
CASE
WHEN UIN.Title LIKE '%KB3092627%' THEN 'Yes'
ELSE 'No'
END 'KB Installed'
FROM v_R_System SYS
INNER JOIN v_UpdateComplianceStatus UCS ON SYS.ResourceID = UCS.ResourceID
INNER JOIN v_UpdateInfo UIN ON UCS.CI_ID = UIN.CI_ID
WHERE SYS.operatingSystem0 LIKE '%Server 2008%'
ORDER BY SYS.Name0
, но я получаю сотни результатов для каждого SYS.Name0
, по одному для каждого обнаруженного обновления. Все записи для обновлений, которые имеют желаемый КБ, имеют значение 'No'
для KB Installed
, но они все еще перечислены. Я попробовал SELECT DISTINCT
, чтобы узнать, получились ли у меня разные результаты, но это не так.
Я хочу, чтобы определить, присутствует ли KB, и вернуться, если это так. Я чувствую, что даже не задаю основополагающий вопрос «Установлен или нет» с этим кодом, но я не могу придумать способ задать это по-другому. Это что-то, что я должен делать в построителе отчетов вместо запроса?
Это делает это, спасибо вам большое! Я был совершенно застопорился по этому вопросу. – Eric
Использует ли значение SELECT DISTINCT в сравнении с SELECT в этом случае? Как это изменит результат в операторе CASE или что-то еще? – Eric
Это означает, что каждое значение 's1.Name0' появляется только один раз (где в действительности каждое значение может появляться много раз в таблице' v_R_System'), что и есть то, что вы хотите. Попробуйте удалить «DISTINCT» из вашего запроса и посмотреть, какие результаты вы получите. :) – 3N1GM4