2017-06-13 69 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>