SQL 查询错误

SQL 查询错误

尝试对一组网络服务器执行查询,但出现奇怪的语法错误。顶部查询将成功运行,但一旦添加添加/删除程序,就会出现“无法绑定多部分标识符“SYS.ResourceID””。最后,我希望能够查询一组计算机并查看每台计算机的添加/删除程序列表。

用于提取服务器类型、服务包等的工作代码:

选择不同的 SYS.Name、OPSYS.Caption0、OPSYS.CSDVersion0、OPSYS.InstallDate0、OPSYS.LastBootUpTime0
来自 v_FullCollectionMembership 系统
加入 v_GS_OPERATING_SYSTEM OPSYS 于 SYS.ResourceID=OPSYS.ResourceID
其中 SYS.CollectionID = @CollID
按系统名称、操作系统标题 0 排序

不工作:

选择不同的 SYS.Name、OPSYS.Caption0、OPSYS.CSDVersion0、OPSYS.InstallDate0、OPSYS.LastBootUpTime0、ARP.DisplayName0、ARP.Version0
来自 v_FullCollectionMembership SYS,v_Add_Remove_Programs ARP
加入 v_GS_OPERATING_SYSTEM OPSYS 于 SYS.ResourceID=OPSYS.ResourceID
其中 SYS.CollectionID = @CollID
按系统名称、操作系统标题 0 排序

答案1

SMS 2003,嗯?

我看不出您要在何处与 v_Add_Remove_Programs (as 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

相关内容