2016-11-09 25 views
0

Fehler Missing keyword treten auf und markieren in meiner zweiten Zeile der Abfrage. Ich habe versucht, den zusätzlichen Fall zu entfernen, als es noch passiert ist.Fehlendes Schlüsselwort im verschachtelten CASE WHEN Anweisung

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, 

Irgendwelche Vorschläge, um mir dabei zu helfen?

Antwort

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

seine Grundsätzlich habe ich drei Dinge zu überprüfen, zuerst, wenn der BAT_WK02 ist größer als der TARGET_BAT, dann fahren Sie fort zu überprüfen, ob RMO_ENTITLED_WK01 gehen t-Wert (erreichtes Ziel wk_01) oder nicht (Ziel wk01 konnte nicht erreicht werden). Wenn RMO_ENTITLED_WK01 einen Wert erhalten hat, dann überprüfen Sie, ob der Wert von SKU_SALES_WK02, ob er die maximale Erstattung erreicht, wenn ja, verwenden Sie die maximale Obergrenze (TARGET_SKU) multiplizieren 1 andernfalls verwenden Sie die Verkaufszahl (SKU_SALES_WK02) * 1; Wenn RMO_ENTITLED_WK01 0 ist (Ziel wk01 nicht erreichen), dann sollte es (SKU_SALES_WK02) * 0.50 bitte lassen Sie mich wissen, wenn mehr Klärung, danke. – user2256904

+0

Können Sie einige Beispieldaten und die erwartete Ausgabe geben – Mansoor

+0

Sicher. 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 hoffe das hilft! – user2256904

0

Ich denke, Sie sollten ein 'wenn' Schlüsselwort für jedes 'then' Schlüsselwort in Ihrer Frage haben, Sie haben eins, das in Zeile 2-3 fehlt.

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

Sie haben einen verschachtelten ‚Fall, wenn‘ durch die Art und Weise, aber ich denke, dass es angeblich