2010-10-12 45 views
0

這個SQL查詢工作正常,直到我嘗試添加CASE語句,但現在我得到了這篇文章底部描述的語法錯誤。這裏的SQL(非常史詩,但是語法錯誤發生周圍的情況下,也許與SageAccount前選擇)我的SQL查詢出了什麼問題?語法錯誤

SELECT CurrentBalance.Value AS CurrentBalanceValue, 
     Debt30Balance.Value AS Debt30BalanceValue, 
     Debt60Balance.Value AS Debt60BalanceValue, 
     Debt90Balance.Value AS Debt90BalanceValue, 
     WIP.Value AS WIPValue, CurrentBalance.Value + Debt30Balance.Value + 
      Debt60Balance.Value + Debt90Balance.Value AS SLDebt, 
     CurrentBalance.Value + Debt30Balance.Value + Debt60Balance.Value + 
      Debt90Balance.Value+ WIP.Value AS TotalDebt, 
     (SELECT CreditTerms FROM SageAccount WHERE [email protected]) 
     AS CreditTerms, 
CASE WHEN CreditTerms <= 30 THEN 
CurrentBalance.Value + Debt30Balance.Value + 
    Debt60Balance.Value + Dept90Balance.Value 
ELSE WHEN CreditTerms <= 60 THEN 
Debt30Balance.Value + Debt60Balance.Value + Dept90Balance.Value 
ELSE WHEN CreditTerms <= 90 THEN 
Debt60Balance.Value + Dept90Balance.Value 
ELSE 
Debt90Balance.Value 
END AS Overdue 
FROM (SELECT TOP (1) Value, Customer FROM DebtBreakdown 
     WHERE (Type = 0) AND (Customer = @CustomerID) 
     ORDER BY Timestamp DESC) AS CurrentBalance 
     INNER JOIN (SELECT TOP (1) Value, Customer 
     FROM DebtBreakdown AS DebtBreakdown_1 
     WHERE (Type = 1) AND (Customer = @CustomerID) 
     ORDER BY Timestamp DESC) AS Debt30Balance ON 
     CurrentBalance.Customer = Debt30Balance.Customer 
     INNER JOIN (SELECT TOP (1) Value, Customer FROM 
     DebtBreakdown AS DebtBreakdown_2 
     WHERE (Type = 2) AND (Customer = @CustomerID) 
     ORDER BY Timestamp DESC) 
     AS Debt60Balance ON Debt30Balance.Customer = Debt60Balance.Customer 
     INNER JOIN (SELECT TOP (1) Value, Customer FROM DebtBreakdown AS 
     DebtBreakdown_3 WHERE (Type = 3) AND (Customer = @CustomerID) 
     ORDER BY Timestamp DESC) AS Debt90Balance ON 
     Debt60Balance.Customer = Debt90Balance.Customer 
     INNER JOIN (SELECT TOP (1) Value, Customer FROM DebtBreakdown AS 
     DebtBreakdown_4 WHERE (Type = 4) AND (Customer = @CustomerID) 
     ORDER BY Timestamp DESC) AS WIP ON Debt90Balance.Customer = WIP.Customer 

對不起,忘了錯誤!

'WHEN'附近的WHERE子句出現錯誤。 ','附近的WHERE子句出錯。 'ORDER'附近的WHERE子句出錯。無法解析查詢文本。

+1

您遇到的錯誤是什麼?在我的帖子底部,我沒有看到有關錯誤的信息。 – LittleBobbyTables 2010-10-12 16:15:59

回答

10

嘗試將「ELSE WHEN」語句更改爲「WHEN」(將最終ELSE保持原樣)

+3

+1 - 這就是我想要設置他的問題的格式 - 擊敗了我。 – LittleBobbyTables 2010-10-12 16:19:07