我有代码,我将记录插入临时表。它会生成以下错误: Msg 102,Level 15,State 1,Line 185 ','附近的语法不正确。 消息102,级别15,状态1,行186 'TI'附近的语法不正确。 信息102,第15级,状态1,第187行 'S1'附近的语法不正确。 消息156,第15级,状态1,第189行 关键字'as'附近的语法不正确。 信息156,第15级,状态1,第191行 关键字'as'附近的语法不正确。 消息156,第15级,状态1,第193行 关键字'as'附近的语法不正确。 消息156,第15级,状态1,第195行 关键字'as'附近的语法不正确。
(以下代码从我的代码的第178行开始:) 插入#Month18Result
def print_list(table):
for line in table:
print(str(line[0]) + " kms, $" + str(line[1]))
with open(input("Enter file name: ")) as f:
table = []
for line in f:
line = line.rstrip().split(",")
line[0] = int(line[0])
line[1] = float(line[1])
table.append(line)
table.sort(key=lambda line: line[1])
print_list(table)
如果我从CASE语句中删除了parens,则波形移动到第185行的第一个逗号,其中的工具提示消息与第184行的paren相同。
此代码用于测试S1.P0是否大于FC.P0。如果为true,则使用一个公式。如果为false,请使用其他公式。
临时表包含唯一ID,类别标题的NVAR,以及18个INT号字段。
答案 0 :(得分:1)
没有详细检查您的查询,但是没有"结束"案件陈述中缺少?
https://msdn.microsoft.com/en-us/library/ms181765.aspx
Searched CASE expression:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
答案 1 :(得分:1)
当您使用结束
时,您忘记关闭案例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