嵌套的 CASE WHEN 语句中缺少关键字

Missing keyword in nested CASE WHEN statement

遇到错误 Missing keyword 出现并突出显示在我的第二行查询中。我试图删除额外的案例,但仍然发生了。

CASE WHEN NVL(BAT_WK02,0)>=NVL(TARGET_BAT,0) THEN 
    CASE WHEN NVL(RMO_ENTITLED_WK01,0)>0 THEN NVL(SKU_SALES_WK02,0) >= NVL(TARGET_SKU,0) THEN NVL (TARGET_SKU,0) * 1 ELSE NVL(SKU_SALES_WK02,0) *1 
                             WHEN NVL(RMO_ENTITLED_WK01,0)=0 THEN NVL(SKU_SALES_WK02,0) >= NVL(TARGET_SKU,0) THEN NVL (TARGET_SKU,0) * 0.50 ELSE NVL (SKU_SALES_WK02) * 0.50 END
                     ELSE 0 END RMO_ENTITLED_SKU_02,

有什么建议可以帮助我吗?

我认为您应该为查询中的每个 'then' 关键字设置一个 'when' 关键字,第 2-3 行缺少一个关键字。

CASE WHEN NVL(BAT_WK02,0)>=NVL(TARGET_BAT,0) THEN CASE WHEN NVL(RMO_ENTITLED_WK01, 0)>0 THEN NVL(SKU_SALES_WK02,0) >= NVL(TARGET_SKU,0) THEN NVL ( TARGET_SKU,0) * 1 其他 ...

顺便说一句,你有一个嵌套的 'case when',但我想它应该在那里

CASE WHEN NVL(BAT_WK02,0)>=NVL(TARGET_BAT,0) THEN 
( 
   CASE WHEN NVL(RMO_ENTITLED_WK01,0)>0 THEN NVL(SKU_SALES_WK02,0) >= NVL(TARGET_SKU,0) 
        WHEN <--Here Statement missing--> 
        THEN NVL (TARGET_SKU,0) * 1 ELSE NVL(SKU_SALES_WK02,0) *1 END 
)
WHEN NVL(RMO_ENTITLED_WK01,0)=0 THEN NVL(SKU_SALES_WK02,0) >= NVL(TARGET_SKU,0) 
WHEN <--Here Statement missing--> 
THEN NVL (TARGET_SKU,0) * 0.50 ELSE NVL (SKU_SALES_WK02) * 0.50 ELSE 0 END