2016-11-09 2 views
0

エラーMissing keywordが表示され、2行目にハイライト表示されます。私は余分なケースを取り除こうとしたが、まだ起こった。ネストされた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) 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, 

私にこれを手伝ってくれる提案がありますか?

答えて

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 
+0

基本的に私は3を得たことになっていたと思います検査するもの、最初にBAT_WK02がTARGET_BATより大きい場合は、RMO_ENTITLED_WK01が実行されるかどうかを確認しますt値(達成されたwk_01目標)または達成されなかった(wk01目標を達成できなかった)。 RMO_ENTITLED_WK01に値が設定されている場合は、SKU_SALES_WK02の値が最大償還額に達しているかどうかをさらに確認し、最大キャップ(TARGET_SKU)を使用し、それ以外の場合は売上額(SKU_SALES_WK02)* 1を使用します。 RMO_ENTITLED_WK01が0(wk01ターゲットを達成していない)の場合は、(SKU_SALES_WK02)* 0.50 が必要です。 – user2256904

+0

いくつかのサンプルデータと期待される出力を与えることができます – Mansoor

+0

確かに。 IF RMO_ENTITLED_WK01 = 5; SALES_CAP = 10; SALES_WK02 = 15 THEN SALES_CAP * 1 IF RM0_ENTITLED_WK01 = 5; SALES_CAP = 20; SALES_WK02 = 15 THEN SALES_WK02 * 1 IF RMO_ENTITLED_WK01 = 0; SALES_CAP = 10; SALES_WK02 = 15 THEN SALES_CAP * 0.5 IF RMO_ENTITLED_WK01 = 0; SALES_CAP = 20; SALES_WK02 = 15 THEN SALES_WK02 * 0.5 これは役に立ちます。 – user2256904

0

クエリの「then」キーワードごとに 'when'キーワードが必要であると思います。行2-3に行方不明があります。

CASE WHEN NVL(BAT_WK02,0)> = NVL(TARGET_BAT、0)THEN CASE NVL(RMO_ENTITLED_WK01,0)> 0 THEN NVL(SKU_SALES_WK02,0)> = NVL(TARGET_SKU、0) はTHEN NVL(TARGET_SKU、0)* ELSE 1 ...

あなたは、ネストされた 'ケース際に' 道によってがありますが、私はそれがそこに

関連する問題