Назад | Перейти на главную страницу

Ошибка запроса SQL

Попытка выполнить запрос к группе сетевых серверов, но возникает странная синтаксическая ошибка. Верхний запрос будет выполнен успешно, но как только добавление / удаление программ будет добавлено, «Многокомпонентный идентификатор« SYS.ResourceID »не может быть привязан». В конце концов, я хочу иметь возможность запрашивать группу компьютеров и просматривать список «Добавить / удалить программу» на каждом из них.

Рабочий код для получения типа сервера, пакета обновления и т. Д .:

SELECT DISTINCT SYS.Name, OPSYS.Caption0, OPSYS.CSDVersion0, OPSYS.InstallDate0,OPSYS.LastBootUpTime0
FROM v_FullCollectionMembership SYS
JOIN v_GS_OPERATING_SYSTEM OPSYS on SYS.ResourceID=OPSYS.ResourceID
WHERE SYS.CollectionID = @CollID
ORDER BY SYS.Name,OPSYS.Caption0

Не работает:

SELECT DISTINCT SYS.Name, OPSYS.Caption0, OPSYS.CSDVersion0, OPSYS.InstallDate0,OPSYS.LastBootUpTime0, ARP.DisplayName0, ARP.Version0
FROM v_FullCollectionMembership SYS ,  v_Add_Remove_Programs ARP
JOIN v_GS_OPERATING_SYSTEM OPSYS on SYS.ResourceID=OPSYS.ResourceID
WHERE SYS.CollectionID = @CollID
ORDER BY SYS.Name,OPSYS.Caption0

СМС 2003, а?

Я не понимаю, где вы присоединяетесь к таблице v_Add_Remove_Programs (как ARP). Вам нужно будет назвать его в соединении.

Полностью без манжеты, это должно сработать (но, вероятно, не ... улыбка У меня нет этой схемы, чтобы запросить):

SELECT DISTINCT SYS.Name, OPSYS.Caption0, OPSYS.CSDVersion0, OPSYS.InstallDate0,OPSYS.LastBootUpTime0, ARP.DisplayName0, ARP.Version0
FROM v_FullCollectionMembership SYS
INNER JOIN v_GS_OPERATING_SYSTEM OPSYS on SYS.ResourceID = OPSYS.ResourceID
INNER JOIN v_Add_Remove_Programs ARP on SYS.ResourceID = ARP.ResourceID
WHERE SYS.CollectionID = @CollID
ORDER BY SYS.Name,OPSYS.Caption0