我有將代碼插入臨時表的代碼。它會生成以下錯誤: Msg 102,Level 15,State 1,Line 185 ','附近的語法不正確。 Msg 102,Level 15,State 1,Line 186 「TI」附近的語法錯誤。 Msg 102,Level 15,State 1,Line 187 'S1'附近語法不正確。 Msg 156,Level 15,State 1,Line 189 關鍵字'as'附近的語法不正確。 Msg 156,Level 15,State 1,Line 191 關鍵字'as'附近的語法不正確。 Msg 156,Level 15,State 1,Line 193 關鍵字'as'附近的語法不正確。 Msg 156,Level 15,State 1,Line 195 關鍵字'as'附近的語法不正確。當包圍括號的CASE語句時出現TSQL語法錯誤
(下面的代碼開始在我的代碼:) 178線插入#Month18Result
SELECT TI.EQId, 'Inventory'
,(CASE
WHEN S1.P0 > FC.P0
THEN TI.P0+OPO.P0-FP.P0
ELSE
[TI].[P0]+[S1].[P0]+[OPO].[P0]-[FC].[P0]-[FP].[P0]-[S2].[P0]) <--(LINE 184) THIS PAREN IS WHERE THE RED SQUIGGLE INDICATES "INCORRECT SYNTAX NEAR ')'
,'','','','','','','','','','','','','','','','',''
FROM (SELECT EQId, P0 FROM #Month18Result WHERE TransactionType = 'TotalInventory') TI
LEFT JOIN (SELECT EQId, P0 FROM #Month18Result WHERE TransactionType = 'Sales') S1
ON S1.EQId = TI.EQId
LEFT JOIN (SELECT EQId, P0 FROM #Month18Result WHERE TransactionType = 'Open PO') as OPO
ON OPO.EQId = TI.EQId
LEFT JOIN (SELECT EQId, P0 FROM #Month18Result WHERE TransactionType = 'Forecast') as FC
ON FC.EQId = TI.EQId
LEFT JOIN (SELECT EQId, P0 FROM #Month18Result WHERE TransactionType = 'Further Process') as FP
ON FP.EQId = TI.EQId
LEFT JOIN (SELECT EQId, P0 FROM #Month18Result WHERE TransactionType = 'Safety Shock') as S2
ON S2.EQId = TI.EQId
如果我從CASE語句刪除括號中,波浪線移動到第一個逗號上線185與在線184上的paren相同的工具提示消息。
此代碼用於測試S1.P0是否大於FC.P0。如果屬實,則使用一個公式。如果爲false,則使用其他公式。
臨時表保存一個唯一的ID,一個類別標題的NVAR,然後是18個INT數字段。
WOW。我一直盯着那些代碼幾個小時,而且由於只有一雙眼睛,我直觀地看到了END,直到你指出它丟失了。非常感謝! –