2017-08-08 28 views
0

の近くにエラーがあります"と伝えているだけです。どんな助け?問題はスペースの近くにあるのでしょうか?私は他の人が '<'または ';'の近くのエラーで同様の問題を抱えているのを見ました。ちょうど」。SQL Serverエラー102不適切な構文 "

‍SELECT   CO.JCCo, CO.Contract, CO.PCO AS PCO, CO.PCOType, MAX(CO.COStatus) AS Status, MAX(CO.COApprovedYN) AS Approved, 
            SUM(CO.COContPendAmt) AS PriceAmount, 
            SUM(CO.COCostDollars) AS CostAmount, 
            SUM(CO.COContPendAmt) - SUM(CO.COCostDollars) AS CO_Profit, 
         PMOP.Description, PMOP.PendingStatus, MAX(PMOP.DateCreated) AS PODate, GETDATE() AS Today, DATEDIFF(d, MAX(PMOP.DateCreated),           GETDATE()) AS DaysOutstanding, (CASE WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) < 30 THEN 'Less than 30' 
         WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 30 AND (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) <= 60 THEN ' 30 - 60 '         WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 60 AND (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) <= 90 THEN ' 60 - 90 ' 
         WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 90 THEN ' Over 90 ' ELSE 'Less than 30' END) AS AgingCategory, 
         PMOI.FixedAmount AS FixedAmount, PMOI.PendingAmount AS PendingAmount, PMOI.PCOItem, 
         (SELECT JCJM.ProjectMgr FROM JCJM WHERE JCJM.Job = CO.Contract AND JCJM.JCCo = 1) AS ProjectManager 

FROM    brvJCCostRevChgOrders AS CO 
            RIGHT JOIN PMOP ON CO.PCOType = PMOP.PCOType AND CO.PCO = PMOP.PCO AND CO.Contract = PMOP.Contract 
            RIGHT JOIN PMOI ON PMOP.PCOType = PMOI.PCOType AND PMOP.PCO = PMOI.PCO AND PMOP.Project = PMOI.Project 

WHERE   (PMOP.PendingStatus = 0) AND (CO.JCCo = 1) AND PMOP.Status <> 'VOID' AND PMOI.PMCo = 1 AND PMOP.PMCo = 1 AND (SELECT              JCJM.ProjectMgr FROM JCJM WHERE JCJM.Job = CO.Contract AND JCJM.JCCo = 1) IS NOT NULL 

GROUP BY  CO.JCCo, CO.Contract, CO.PCO, PMOP.Description, CO.PCOType, PMOP.PendingStatus, PMOI.PCOItem, PMOI.FixedAmount, PMOI.PendingAmount 

ORDER BY  CO.Contract, CO.PCOType 
+1

不適切な構文は、どの行の近くにありますか?全体のエラーメッセージを伝えることができますか? –

+0

問題が表示されるのは、複数の値を返す可能性のあるwhere句にselectがあり、Existsを代わりに使用する必要があることだけです。 – JamieD77

+0

どの行が表示されないのですか。それはVisual Studioにあります。それはちょうど私にエラー102、不正確な構文の近くに "。 –

答えて

0

この部分....

WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 30 AND (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) <= 60 THEN ' 30 - 60 '         WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 60 AND (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) <= 90 THEN ' 60 - 90 ' 
         WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 90 THEN ' Over 90 ' ELSE 'Less than 30' END) AS AgingCategory, 

は、冒頭でCASEを逃すと、一見終わりルージュの括弧を持っている。

ここで修正されているではありませんバージョン:

CASE 
    WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 30 AND (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) <= 60 
    THEN ' 30 - 60 ',          
    WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 60 AND (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) <= 90 
    THEN ' 60 - 90 ', 
    WHEN (DATEDIFF(d, MAX(PMOP.DateCreated), GETDATE())) > 90 
    THEN ' Over 90 ' 
    ELSE 'Less than 30' 
END AS AgingCategory, 
0

完全なエラーメッセージを表示するには、SQLコードをS QL Server Managementスタジオ。必要なデータベースを選択して実行します。いずれかの文字に問題がある場合は、下のメッセージタブに表示されます。

まだ判りにくい場合は、エラーをダブルクリックするとエラーのコード行に移動します。

関連する問題