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

时间:2016-11-09 07:32:17

标签: sql keyword

在我的第二行查询中出现并突出显示错误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,

有任何建议可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

我认为您的查询中每个'then'关键字都应该有'when'关键字,第2-3行就有一个丢失。

当NVL(BAT_WK02,0)> = NVL(TARGET_BAT,0)时的情况那么情况 WHEN NVL(RMO_ENTITLED_WK01,0)> 0 然后 NVL(SKU_SALES_WK02 ,0)> = NVL(TARGET_SKU,0) THEN NVL(TARGET_SKU,0)* 1 ELSE ...

顺便说一句,你有一个嵌套的“案例”,但我猜应该是那里的

答案 1 :(得分:0)

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