2015-04-06 112 views
0

我正在为我的SCCM集合创建一个SQL查询,但我得到一个错误。它并没有告诉我错误是什么,规则对我来说很合适。SCCM2012 SQL查询有错误

Select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client, SMS_R_User.UniqueUserName 
FROM SMS_R_System 
JOIN SMS_UserMachineRelationship ON SMS_R_System.Name=SMS_UserMachineRelationship.MachineResourceName 
JOIN SMS_R_User ON SMS_UserMachineRelationship.UniqueUserName=SMS_R_User.UniqueUserName 
Where SMS_R_User.UniqueUserName in (select UniqueUserName from SMS_R_User where UserGroupName = "Domain\\GroupName") 
+0

您是否尝试过在运行SSMS此查询,看看它是否报告错误? –

+3

只是猜测,但也许'“域\\组名”应该是“域\\组名”?双引号通常用作对象的引用标识符,而单引号表示字符串文字。 – jpw

+0

此外,请开始使用这种查询的表别名,它真的提高了可读性 – Lamak

回答

1

假设你没有拼错任何列名,我可以看到,会抛出一个错误是,也许"Domain\\GroupName"应该'Domain\\GroupName'的唯一的事情?双引号通常用作对象的引用标识符,而单引号表示字符串文字。

随着双引号,你可能会得到这样的错误:

消息207,级别16,状态1,行?无效的列名称 'Domain \ GroupName'。

此外,在where子句看起来不必要的子查询,这个查询应该是等价的(如果我没有误解的话):

SELECT 
    S.ResourceID, 
    S.ResourceType, 
    S.Name, 
    S.SMSUniqueIdentifier, 
    S.ResourceDomainORWorkgroup, 
    S.Client, 
    U.UniqueUserName 
FROM SMS_R_System S 
JOIN SMS_UserMachineRelationship UMR ON S.Name = UMR.MachineResourceName 
JOIN SMS_R_User U ON UMR.UniqueUserName = U.UniqueUserName 
WHERE U.UserGroupName = 'Domain\\GroupName' 
+0

因此,这会给我一个主要用户属于AD安全组“GroupName”的设备列表? –

+0

我会这么认为,但我不知道你的数据库方案或应用程序,所以我不能肯定地说。试一试,看看你是否得到预期的结果。 – jpw

+0

我试过了,得到语法错误。不幸的是,SCCM12不会像SQL Server一样告诉你错误的位置。 –