2017-06-13 72 views
0

首先,我一直在寻找全国各地的答案,这一点,我也是新来的SQL编码,所以请多多包涵。附近有语法错误“;” (Microsoft SQL Server错误102)

我试图发现客户机在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中我不断收到以下错误:

Error 102 Syntax near';'

我似乎无法找出问题所在,它的驾驶我疯了...

无论如何,任何ÿ您可以同时做点我在正确的方向将是巨大的。

干杯

P.

+2

“连接”的“ON”子句在哪里? –

+3

'INNER JOIN v_gs_antimalwareinfectionstatus;' - 添加连接条件 – Backs

+2

您的条款上错过了一些内部联接这里:'INNER JOIN v_gs_antimalwarehealthstatus' 和'INNER JOIN v_gs_antimalwareinfectionstatus' – Jens

回答

0

您刚刚在声明中错过了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]; 
+0

你需要在SELECT语句中使用别名,因为像'v_gs_antimalwarehealthstatus'这样的名字将会被使用不再在范围之内。 –

+0

太棒了,谢谢你们的答案。现在我明白了,我需要再去学习一些东西,所以我买了一本书,我要去学习。再次感谢你们。 –

+0

@Damien_The_Unbeliever哎呀我的错误错过了同样的'SELECT'感谢您的支持:) – Joby

0

在蒙山列,你在最后一个表v_gs_antimalwareinfectionstatus加入? 只需添加条件在ON子句,它应该正常工作

0

我认为你必须在查询两个问题。第一个:

FROM  v_gs_antimalwarehealthstatus 
INNER JOIN v_gs_antimalwarehealthstatus 

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

FROM  v_gs_antimalwarehealthstatus 

第二个是在最后加入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>