2014-09-29 108 views
0

SQL語句有什麼問題?我收到一條消息,說明存在語法錯誤(缺少運算符)。從ASSIGNMENT TABLE中,我希望選擇ASSN_TRANS_STATE_NUM ='1'的所有行。對於這些行中的每一行,我都想從PROJECTS表中獲取項目名稱。我也想從TASKS表中獲取每個Task名稱。我確實讓這個工作更早(不知道我做了什麼改變,打破了它),但即使它工作,它也是不正確的。它正在報告每個項目的每個任務,而不僅僅是給我具體項目的任務。語法錯誤 - 缺少操作員 - 無法確定缺少的內容

SELECT 
    TRANS.PROJ_UID, 
    PROJ.PROJ_NAME, 
    TRANS.TASK_UID, 
    TASKS.TASK_NAME, 
    TRANS.ASSN_TRANS_STATE_ENUM, 
    TRANS.ASSN_TRANS_APPROVER_RES_UID 
FROM dbo_MSP_ASSIGNMENT_TRANSACTIONS TRANS 
INNER JOIN dbo_MSP_PROJECTS PROJ ON PROJ.PROJ_UID = TRANS.PROJ_UID 
INNER JOIN dbo_MSP_TASKS TASKS ON TASKS.TASK_UID = TRANS.TASK_UID 
WHERE TRANS.ASSN_TRANS_STATE_ENUM = 1; 
+2

哪個數據庫?你有沒有試過在'sql''ide/gui'編輯器中運行查詢?即MySql:phpmyadmin,SQLite:'Expert Personal',Oracle:'SQLDeveloper,Toad'等。 – 2014-09-29 16:57:37

+2

應該是'dbo_'還是'dbo'。在表名上? – thursdaysgeek 2014-09-29 16:57:43

+0

'dbo_'前綴來自'dbo_MSP_ASSIGNMENT_TRANSACTIONS'哪裏?即爲什麼它是'小寫'而不是'大寫'來匹配名稱的其餘部分?一些數據庫引擎依賴於「字母大小寫」,並且使數據庫'實體'名稱中的混合大小寫使得維護更加困難。 – 2014-10-01 13:48:00

回答

0

這將是dbo。而不是dbo_。我想它應該幫助

SELECT 
    TRANS.PROJ_UID, 
    PROJ.PROJ_NAME, 
    TRANS.TASK_UID, 
    TASKS.TASK_NAME, 
    TRANS.ASSN_TRANS_STATE_ENUM, 
    TRANS.ASSN_TRANS_APPROVER_RES_UID 
FROM dbo.MSP_ASSIGNMENT_TRANSACTIONS TRANS 
INNER JOIN dbo.MSP_PROJECTS PROJ ON PROJ.PROJ_UID = TRANS.PROJ_UID 
INNER JOIN dbo.MSP_TASKS TASKS ON TASKS.TASK_UID = TRANS.TASK_UID 
WHERE TRANS.ASSN_TRANS_STATE_ENUM = 1; 
+0

@Dennis Kattengell,這對您有幫助嗎? – 2014-09-30 18:06:18