我有最长的联合案例陈述我曾经做过,我无法解决这个错误。 IT说它附近的语法错误)我完全不好意思,我无法弄清楚这样一个简单的错误
SUM(CASE
WHEN COL_V_STD_REP_FullCourseDetail.SYSTEM = 'GEMS'
THEN CASE
WHEN RRDD LIKE '12%' OR RRDD LIKE '13%' OR RRDD LIKE '16%' OR
RRDD LIKE '17%' OR RRDD LIKE '2706%' OR RRDD LIKE '2707%' OR
RRDD LIKE '2331%'
THEN [DUR_IN_Hours]
ELSE 0
END) AS SP_DOM_INTL_HRS
答案 0 :(得分:6)
您缺少第二个END
:
SUM(CASE
WHEN COL_V_STD_REP_FullCourseDetail.SYSTEM = 'GEMS'
THEN
CASE
WHEN RRDD LIKE '12%'
OR RRDD LIKE '13%'
OR RRDD LIKE '16%'
OR RRDD LIKE '17%'
OR RRDD LIKE '2706%'
OR RRDD LIKE '2707%'
OR RRDD LIKE '2331%'
THEN [DUR_IN_Hours]
ELSE 0
END
END) AS SP_DOM_INTL_HRS
^ -- this is missing
作为旁注,如果您格式化代码,您将更容易找到这些问题。
答案 1 :(得分:2)
逻辑上,当逻辑不复杂时,我不会嵌套CASE语句。对于这样的事情,我会在第一个CASE语句中添加嵌套的CASE语句的逻辑(如下所示):
SUM(CASE
WHEN COL_V_STD_REP_FullCourseDetail.SYSTEM = 'GEMS' AND
(RRDD LIKE '12%'
OR RRDD LIKE '13%'
OR RRDD LIKE '16%'
OR RRDD LIKE '17%'
OR RRDD LIKE '2706%'
OR RRDD LIKE '2707%'
OR RRDD LIKE '2331%') THEN [DUR_IN_Hours]
ELSE 0
END) AS SP_DOM_INTL_HRS