繁体   English   中英

';' 附近的语法不正确 (Microsoft SQL Server 错误 102)

[英]Incorrect Syntax near ';' (Microsoft SQL Server Error 102)

首先,我一直在寻找这个问题的答案,而且我也是 SQL 编码的新手,所以请耐心等待。

我正在尝试使用自定义报告发现 SCCM 2012r2 中客户端计算机的当前健康状态,请参阅以下代码:

SELECT     v_r_system.name0                                       AS 'Computer Name', 
           v_gs_antimalwarehealthstatus.lastquickscanage          AS 'Days since last quick scan',
           v_gs_antimalwarehealthstatus.lastfullscanage           AS 'Days Since Last Full Scan',
           v_gs_antimalwareinfectionstatus.computerstatus         AS 'Current Status', 
           v_gs_antimalwareinfectionstatus.lastcleaneddectiontime AS 'Last Cleaned' 
FROM       v_gs_antimalwarehealthstatus 
INNER JOIN v_gs_antimalwarehealthstatus 
INNER JOIN v_r_system 
ON         v_gs_antimalwarehealthstatus.resourceid = v_r_system.resourceid 
INNER JOIN v_gs_antimalwareinfectionstatus;

当我在 Report Builder 3.0 中尝试时,我不断收到以下错误:

错误 102

我似乎无法找到问题,这让我发疯......

无论如何,您可以做的任何事情都可以为我指明正确的方向。

干杯

您在最后一个表 v_gs_antimalwareinfectionstatus 中加入了哪些列? 只需在 ON-Clause 中添加条件,它应该可以正常工作

我认为您的查询中有两个问题。 第一的:

FROM       v_gs_antimalwarehealthstatus 
INNER JOIN v_gs_antimalwarehealthstatus 

为什么内在加入它自己? 我认为这是不必要的,应该简单地:

FROM       v_gs_antimalwarehealthstatus 

第二个是在最后一个 join 中缺少ON条件:

INNER JOIN v_gs_antimalwareinfectionstatus ON ... ....;

所以FROM .. JOIN部分必须如下所示:

FROM       v_gs_antimalwarehealthstatus 
INNER JOIN v_r_system 
ON         v_gs_antimalwarehealthstatus.resourceid = v_r_system.resourceid 
INNER JOIN v_gs_antimalwareinfectionstatus
ON v_gs_antimalwareinfectionstatus.<column> = <otherTable>.<column>

您刚刚错过了语句中的ON Clause ,您也可以使用table alias因为它使查询看起来很干净。

SELECT     v_r_system.name0                                       AS 'Computer Name', 
           v_gs_antimalwarehealthstatus.lastquickscanage          AS 'Days since last quick scan',
           v_gs_antimalwarehealthstatus.lastfullscanage           AS 'Days Since Last Full Scan',
           v_gs_antimalwareinfectionstatus.computerstatus         AS 'Current Status', 
           v_gs_antimalwareinfectionstatus.lastcleaneddectiontime AS 'Last Cleaned' 
FROM       v_gs_antimalwarehealthstatus AWT
INNER JOIN v_r_system VRS
    ON  AWT.resourceid = VRS.resourceid 
INNER JOIN v_gs_antimalwareinfectionstatus AWI 
    ON [Place the Matching columns here];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM