Skip to Main Content

How to set double condition for set of fields? APEX

Nicholas_RApr 15 2019 — edited Apr 15 2019

Hi, I need to set condition for the result of SQL select in APEX.

with    report_3 as (

        -- First query 

        SELECT r3.codart, SUM(r3.valnet) AS Sum_v1

        FROM mgmv r3

        WHERE (r3.codcma IN ('X ','Y','Z', 'A', 'B') AND r3.codart NOT IN ('110085', '500015','500016') AND r3.codart NOT LIKE 'FOR%' AND r3.codart NOT LIKE 'DEN%' AND r3.datare BETWEEN '01-gen-2018' AND '31-dic-2018')

        OR(r3.codcma IN ('A') AND r3.codcma NOT IN ('B') AND r3.codart NOT IN ('110085', '500015','500016') AND r3.codart LIKE 'FOR%' AND r3.codart LIKE 'DEN%' AND r3.datare BETWEEN '01-gen-2018' AND '31-dic-2018')

       GROUP BY r3.codart

)

      , report_4 as (

       --  Second query

        SELECT r4.codart, SUM(r4.qtamov) AS Sum_qt

        FROM mgmv r4

        WHERE (r4.codcma IN ('X ','Y','Z', 'A', 'B') AND r4.codart NOT IN ('110085', '500015','500016') AND r4.codart NOT LIKE 'FOR%' AND r4.codart NOT LIKE 'DEN%' AND r4.datare BETWEEN '01-gen-2018' AND '31-dic-2018' AND r4.caumov NOT IN ('T', '9'))

        OR(r4.codcma IN ('A') AND r4.codcma NOT IN ('B') AND r4.codart NOT IN ('110085', '500015','500016') AND r4.codart LIKE 'FOR%' AND r4.codart LIKE 'DEN%' AND r4.datare BETWEEN '01-gen-2018' AND '31-dic-2018' AND r4.caumov NOT IN ('T', '9'))

        GROUP BY r4.codart

)

SELECT DISTINCT

      r3.codart

    , Sum_qt

    , Sum_v1

    , TRUNC(case when Sum_qt <> 0 then Sum_v1/Sum_qt+0 end, 5) as Cs_md

  

FROM

      report_3 r3

      LEFT OUTER JOIN report_4 r4 ON r3.codart = r4.codart

I need to result FOR1 [...] and DEN1 [...] when they are in A but not in B. But I have the products, with other codes, in A e in B.

Comments
Post Details
Added on Apr 15 2019
3 comments
118 views