Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关键字为IN的SQL CASE语句错误_Sql_Sql Server_Sql Server 2008_Case - Fatal编程技术网

关键字为IN的SQL CASE语句错误

关键字为IN的SQL CASE语句错误,sql,sql-server,sql-server-2008,case,Sql,Sql Server,Sql Server 2008,Case,我对此语句有问题,在关键字附近出现错误: CASE [table1.TransType] IN('Accounts Receivable','Customer Sales')THEN table1.Amt ELSE CASE WHEN [table1.Billable] IN(0,8,28) THEN table1.Amt CASE WHEN [table1.Billable] IN(1,2,3,21,22,23)THE

我对此语句有问题,在关键字附近出现错误:

CASE [table1.TransType] IN('Accounts Receivable','Customer Sales')THEN table1.Amt 
            ELSE
            CASE WHEN [table1.Billable] IN(0,8,28) THEN table1.Amt 
            CASE WHEN [table1.Billable] IN(1,2,3,21,22,23)THEN table1.RecAmt 
            CASE WHEN [table1.Billable] IN(9)THEN 0                 
            END
            AS NetBilling

我相信你的括号可能是问题所在。在第一个案例中,当出现时,您还缺少一个

这应该起作用:

SELECT
CASE WHEN [table1].[TransType] IN ('Accounts Receivable','Customer Sales') THEN [table1].[Amt] 
  ELSE
    CASE
      WHEN [table1].[Billable] IN (0,8,28) THEN [Amt]
      WHEN [table1].[Billable] IN (1,2,3,21,22,23) THEN [table1].[RecAmt]
      WHEN [table1].[Billable] IN (9) THEN 0 END
END AS NetBilling
FROM [table1]

有三个结尾缺失:所有的案例陈述都需要一个最终的结尾…所以请注意第一个案例

你在第一个
案例
之后
缺少了一个
,从外观上看,你也缺少了一个
结尾
结尾
之后你有+1我首先错过了括号部分,太多了mistakes@t-克劳森:我也错过了。我有一分钟的时间把它扔进小提琴里,然后注意到了它。