Advertisement
cozcaio

vendas_gerais_show

Dec 11th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. with
  2. classmerc as (
  3.  select distinct(prod_codigo) as codprod,
  4.  (select a.grup_codigo from grupos a where a.grup_classificacao = substr(z.grup_classificacao, 1, 2)) as coddpto,
  5.  (select a.grup_codigo from grupos a where a.grup_classificacao = substr(z.grup_classificacao, 1, 4)) as codsecao,
  6.  (select a.grup_codigo from grupos a where a.grup_classificacao = substr(z.grup_classificacao, 1, 6)) as codcat,
  7.  prod_grup_codigo as codfamilia,
  8.  (select a.grup_descricao from grupos a where a.grup_classificacao = substr(z.grup_classificacao, 1, 2)) as descdpto,
  9.  (select a.grup_descricao from grupos a where a.grup_classificacao = substr(z.grup_classificacao, 1, 4)) as descsecao,
  10.  (select a.grup_descricao from grupos a where a.grup_classificacao = substr(z.grup_classificacao, 1, 6)) as desccat,
  11.  prod_grup_nome as descfamilia
  12. from produtos
  13. left join grupos z on (prod_grup_codigo=z.grup_codigo)
  14. ),
  15.  
  16. vendas as (
  17. select distinct(t1.mprd_prod_codigo) codprod,
  18.  coalesce(round(sum(t1.mprd_valor),2),0.00) as valor
  19. from movprodd17 as t1
  20. where t1.mprd_datamvto between '2017-01-01' and '2017-11-30'
  21.  and t1.mprd_unid_codigo='001'
  22.  and t1.mprd_dcto_codigo IN ('7165','7320','7321','7325','7326','7327','7328','7329','7330','7331','7336','7337','7338','7339','7340')
  23.  and t1.mprd_status='N'
  24. group by t1.mprd_prod_codigo
  25. ),
  26.  
  27. compras as (
  28. select distinct(t1.mprd_prod_codigo) codprod,
  29.  coalesce(round(sum(t1.mprd_valor),2),0.00) as valor
  30. from movprodd17 as t1
  31. where t1.mprd_datamvto between '2017-01-01' and '2017-11-30'
  32.  and t1.mprd_unid_codigo='001'
  33.  and t1.mprd_dcto_codigo='7100'
  34.  and t1.mprd_status='N'
  35. group by t1.mprd_prod_codigo
  36. )
  37.  
  38. select
  39.  distinct(t1.mprd_prod_codigo),
  40.  prod_descricao,
  41.  prod_complemento,
  42.  prod_marca,
  43.  prod_grup_codigo,
  44.  
  45.  classmerc.descdpto,
  46.  classmerc.descsecao,
  47.  classmerc.desccat,
  48.  
  49.  prod_grup_nome,
  50.  prod_comp_codigo,
  51.  comp_nome,
  52.    
  53.  case when vendas.valor is not null then vendas.valor
  54.  else '0.00'
  55.  end as valor_vendas,
  56.  
  57.  case when compras.valor is not null then compras.valor
  58.  else '0.00'
  59.  end as valor_compras,
  60.  
  61.  coalesce(round((vendas.valor / sum(vendas.valor) over ())*100,4),0.0000) as part_vendas,
  62.  coalesce(round((compras.valor / sum(compras.valor) over ())*100,4),0.0000) as part_compras,
  63.    
  64.  round(coalesce(((vendas.valor - compras.valor) / vendas.valor * 100),0.0000),4) as difpercvdcp,
  65.  (coalesce(vendas.valor,0.00) - coalesce(compras.valor,0.00)) as difvalorvdcp
  66.    
  67. from movprodd17 as t1
  68. INNER JOIN produtos on (prod_codigo=t1.mprd_prod_codigo)
  69. INNER JOIN produn on (prun_prod_codigo=t1.mprd_prod_codigo and prun_unid_codigo='001')
  70. LEFT JOIN compradores on (comp_codigo=prod_comp_codigo)
  71. LEFT JOIN classmerc on (t1.mprd_prod_codigo=classmerc.codprod)
  72. LEFT JOIN vendas on (t1.mprd_prod_codigo=vendas.codprod)
  73. LEFT JOIN compras on (t1.mprd_prod_codigo=compras.codprod)
  74. where t1.mprd_datamvto between '2017-01-01' and '2017-11-30'
  75.  and t1.mprd_unid_codigo='001'
  76.  and t1.mprd_dcto_tipo IN ('EVD','EAQ')
  77.  and t1.mprd_status='N'
  78.  --and CONDICAOESCOPO
  79. group by
  80. t1.mprd_prod_codigo,
  81. prod_descricao,
  82. prod_complemento,
  83. prod_marca,
  84. prod_grup_codigo,
  85. classmerc.descdpto,
  86. classmerc.descsecao,
  87. classmerc.desccat,
  88. prod_grup_nome,
  89. prod_comp_codigo,
  90. comp_nome,
  91. vendas.valor,
  92. compras.valor,
  93. classmerc.coddpto,
  94. classmerc.codsecao,
  95. classmerc.codcat
  96. order by t1.mprd_prod_codigo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement