用括号括起CASE语句时出现TSQL语法错误

用括号括起CASE语句时出现TSQL语法错误,tsql,case,Tsql,Case,我有将记录插入临时表的代码。它会生成以下错误: Msg 102,15级,状态1,第185行 “,”附近的语法不正确。 Msg 102,15级,状态1,第186行 “TI”附近的语法不正确。 Msg 102,15级,状态1,第187行 “S1”附近的语法不正确。 Msg 156,第15级,状态1,第189行 关键字“as”附近的语法不正确。 Msg 156,第15级,状态1,第191行 关键字“as”附近的语法不正确。 Msg 156,第15级,状态1,第193行 关键字“as”附近的语法不正确。

我有将记录插入临时表的代码。它会生成以下错误: Msg 102,15级,状态1,第185行 “,”附近的语法不正确。 Msg 102,15级,状态1,第186行 “TI”附近的语法不正确。 Msg 102,15级,状态1,第187行 “S1”附近的语法不正确。 Msg 156,第15级,状态1,第189行 关键字“as”附近的语法不正确。 Msg 156,第15级,状态1,第191行 关键字“as”附近的语法不正确。 Msg 156,第15级,状态1,第193行 关键字“as”附近的语法不正确。 味精156,第15级,状态1,第195行 关键字“as”附近的语法不正确

(以下代码从我的代码的第178行开始:) 插入#month18结果

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
选择TI.EQId“库存”
,(案例
当S1.P0>FC.P0时
然后是TI.P0+OPO.P0-FP.P0
其他的

[TI].[P0]+[S1].[P0]+[OPO].[P0]-[FC].[P0]-[FP].[P0]-[S2].[P0].[p>没有详细检查您的查询,但是case语句中是否缺少“end”


没有详细检查您的查询,但是case语句中是否缺少“end”


你放弃了在停止时关闭箱子

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]) END AS SOMENAME
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

你放弃了在停止时关闭箱子

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]) END AS SOMENAME
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

哇!我盯着那个代码看了几个小时,由于只有一双眼睛,我目不转睛地看到了结尾,直到你指出它不见了。非常感谢!哇!我盯着那个代码看了几个小时,由于只有一双眼睛,我目不转睛地看到了结尾,直到你指出它不见了。非常感谢!