1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Simplify Case When If then statement

Discussão em 'StackOverflow' iniciado por fdantas, Março 12, 2019.

  1. fdantas

    fdantas Administrator Moderador

    I have been provided the following CASE WHEN statement from our MIS provider. I am looking at simplifying this as im no expert so the easier it is for me to read the more chance i have to understand and learn.

    Current statement:

    ,CASE SopOrderItem.SoiProcessMethod:WHEN 0
    THEN IF SopOrderItem.SoiReplenishmentOrder
    THEN DO: IF SopProduct.SopPrePostPaid = 0
    THEN ASSIGN lv-ProcessMethod = "Replenishment Pay on Replenishment".
    ELSE ASSIGN lv-ProcessMethod = "Replenishment Pay on Delivery".
    END.
    ELSE lv-processmethod = "Call Off":U.
    WHEN 1 THEN lv-processmethod = "On Demand":U.
    WHEN 2 THEN lv-processmethod = "Personalised":U.
    END CASE


    This is what i have been able to write from which i know that works the part i am stuck on is WHEN SopOrderItem.SoiProcessMethod = 0. At this point i do not understand the statement. From what i can tell in English it is saying when SopOrderItem.SoiProcessMethod is 0 then check to see if SopProduct.SopPrePostPaid is also 0 if both are true then "Replenishment Pay on Replenishment" if not then "Replenishment Pay on Delivery".

    Is there a way i can simplify the statement to make it easier for me to understand.

    I have the below statement at the moment but this has caused my query to fall over and take ages to refresh:

    CASE WHEN SopOrderItem.SoiProcessMethod = 1 THEN 'On Demand'
    WHEN SopOrderItem.SoiProcessMethod = 2 THEN 'Personalised'
    WHEN SopOrderItem.SoiProcessMethod = 0 AND SopProduct.SopPrePostPaid = 0 THEN "Replenishment Pay on Replenishment"
    WHEN SopOrderItem.SoiProcessMethod = 0 AND SopProduct.SopPrePostPaid <> 0 THEN "Replenishment Pay on Delivery"
    ELSE 'Call Off'
    END

    Continue reading...

Compartilhe esta Página