2014-06-11 358 views
2

我不是那種善於SQL在所有SQL:語法錯誤(缺少運算符)

我有一個MS Access數據庫的兩個表

|ID| Name |Surname|Postion|   |EmpID|ManID| 
----------------------------   ------------- 
|1 |Scrooge|McDuck |Manager|   |3 |1 | 
|2 |Daisy |Duck |Manager|   |7 |1 | 
|3 |Donald |Duck |Support|   |6 |2 | 
|4 |Minny |Mouse |Support|   |4 |2 | 
|5 |Mickey |Mouse |Support|   |2 |1 | 
|6 |Goofy |  |Support|   |1 |2 | 
|7 |Pluto |  |Support|   |5 |2 | 
|8 |Huey |Duck |Support| 
|9 |Dewey |Duck |Support| 
|10|Louie |Duck |Support| 

我需要編寫SQL語句產生下面的輸出

| Name |Surname|Postion|Manager Name|Manager Positon|   
------------------------    
|Donald |Duck |Support|Scrooge  |Manager   
|Pluto |  |Support|Scrooge  |Manager   
|Goofy |  |Support|Daisy  |Manager   
|Minny |Mouse |Support|Daisy  |Manager  
|Daisy |Duck |Support|Scrooge  |Manager   
|Scrooge|McDuck |Manager|Daisy  |Manager   
|Mickey |Mouse |Manager|Daisy  |Manager 

我的代碼看起來是這樣的,到目前爲止(我一直在尋找的淨,看看它是如何做和爲什麼)

SELECT Employee.Name,Employee.Surname,Employee.Position,Manager.Name as ManagerName 
FROM Employee 
INNER JOIN Stafflink ON Employee.ID=Stafflink.EmpID 
INNER JOIN Employee Manager ON Manager.ID=Stafflink.ManID; 

我知道這個問題是回答Sql table output

,但它似乎不工作,並生成錯誤:

Syntax error (Missing operator)

任何援助將不勝感激。

+0

你的標題說,語法錯誤,但你的問題說「似乎沒有工作」。你想完成什麼,你面臨什麼問題? – Nivas

+0

我試圖得到輸出到顯示的格式,最後一行是給出錯誤的行。如果我拿出來,然後我被要求輸入經理的姓名,並以正確的格式出來。查詢的最後一行是獲取經理的姓名,這是我面臨的問題。 – Darkestlyrics

回答

3

MS Access有多個JOIN秒的非典型的要求,他們被封閉在嵌套()團體,如:

FROM 
    ((t1 INNER JOIN t2 ON t1.id = t2.id) 
    INNER JOIN t3 ON t2.id = t3.id) 

FROM條款應該表示爲:

SELECT Employee.Name,Employee.Surname,Employee.Position,Manager.Name as ManagerName 
FROM ((
    Employee 
    INNER JOIN Stafflink ON Employee.ID=Stafflink.EmpID) 
    INNER JOIN Employee Manager ON Manager.ID=Stafflink.ManID); 
+0

在閱讀這個問題時,我的眼睛顯然失敗了。 – Taryn

+0

@bluefeet我一開始錯過了它,當我看到不起眼的錯誤「Missing operator」時,我開始掃描它。 –

+0

非常感謝你對此非常有幫助。我將記住未來的Access,如果我沒有得到適當的數據庫程序。 – Darkestlyrics

相關問題