Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT emp AS x
- ,curva_rol AS y
- ,ROUND(SUM(a.rol),0) AS z
- ,curva_rol
- ,emp
- FROM (SELECT a.cc
- ,'TOTAL' AS rede
- ,a.emp
- ,ptm.curva_rol
- ,SUM(a.qtd) AS qtd
- ,SUM(a.rol) AS rol
- ,SUM(a.lb) AS lb
- ,SUM(a.cmv) AS cmv
- ,CASE WHEN SUM(rol) >0 THEN ROUND(SUM(a.lb)/SUM(rol)*100) ELSE 0 END AS mb
- ,a.cnpj_parceiro cc
- ,a.nota nf
- ,CASE WHEN SUM(rol) >0 THEN
- (CASE WHEN NVL(ROUND(SUM(a.lb)/SUM(rol)*100) ,0) <= 5 THEN 1
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 5 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 10 THEN 2
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 10 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 15 THEN 3
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 15 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 20 THEN 4
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 20 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 25 THEN 5
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 25 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 30 THEN 6
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 30 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 35 THEN 7
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 35 THEN 8 END)
- ELSE 1 END AS fx_mb_o1
- , CASE WHEN SUM(rol) >0 THEN
- (CASE WHEN NVL(ROUND(SUM(a.lb)/SUM(rol)*100) ,0) <= 5 THEN '0-5'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 5 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 10 THEN '6-10'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 10 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 15 THEN '11-15'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 15 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 20 THEN '16-20'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 20 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 25 THEN '21-25'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 25 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 30 THEN '26-30'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 30 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 35 THEN '31-35'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 35 THEN '36-x' END)
- ELSE '0-5' END AS fx_mb_v1
- ,CASE WHEN SUM(rol) >0 THEN
- (CASE WHEN NVL(ROUND(SUM(a.lb)/SUM(rol)*100) ,0) <= 15 THEN 1
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 15 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 20 THEN 2
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 20 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 29 THEN 3
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) >= 30 THEN 4 END)
- ELSE 1 END AS fx_mb_o2
- ,CASE WHEN SUM(rol) >0 THEN
- (CASE WHEN NVL(ROUND(SUM(a.lb)/SUM(rol)*100) ,0) <= 15 THEN '0-15'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 15 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 20 THEN '16-20'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) > 20 AND ROUND(SUM(a.lb)/SUM(rol)*100) <= 29 THEN '21-29'
- WHEN ROUND(SUM(a.lb)/SUM(rol)*100) >= 30 THEN '30-x' END)
- ELSE '0-15' END AS fx_mb_v2
- FROM vm_skvendanota a,
- -- Pareto ROL Marca
- (SELECT rede, cc, emp,
- (CASE WHEN ac <= 50 THEN 'A' WHEN ac <= 80 THEN 'B' ELSE 'C' END) AS curva_rol
- FROM (SELECT rede, emp, cc,
- SUM(SUM(fr)) over (PARTITION BY rede ORDER BY rol DESC rows unbounded preceding) AS ac
- FROM (
- SELECT rede, emp, cc, rol,
- 100*RATIO_TO_REPORT((CASE WHEN rol > 0 THEN rol END)) over (PARTITION BY rede) fr
- FROM (SELECT 'TOTAL' AS rede, a.emp, a.cnpj_parceiro AS cc,
- ROUND(SUM(rol),2) AS rol
- FROM vm_skvendanota a
- WHERE 1 =1
- AND TRUNC(a.data) >= TO_DATE('01/01/2022') AND TRUNC(a.data) <= SYSDATE
- GROUP BY a.emp, a.cnpj_parceiro)
- )
- GROUP BY rede, emp, cc, rol)
- ORDER BY cc, emp, ac ASC) ptm
- WHERE a.cnpj_parceiro = ptm.cc(+)
- AND a.emp = ptm.emp(+)
- AND TRUNC(a.data) >= TO_DATE('01/01/2022') AND TRUNC(a.data) <= SYSDATE
- GROUP BY a.cc, a.emp, a.cnpj_parceiro, a.nota, ptm.curva_rol) a
- WHERE 1 = 1
- GROUP BY emp
- ,curva_rol
- ,emp
- ,curva_rol
- ORDER BY emp , curva_rol ASC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement