Jump to content
Fórum Script Brasil
  • 0

ajuda em query - percentual com o resultado da soma


ROMANVPP

Question

Pessoal,

Tenho a seguinte query:

select *, totvalorliquido - totvalorcustorep  as lucro

 from(select distinct tp.margembrutalucro,sum(ttm.quantidade * ttm.precounitario)as totvalorliquido,    
      SUM(case when tp.margembrutalucro >= 1.15 and tp.margembrutalucro <= 1.30 then (ttm.precounitario*ttm.quantidade) * 0.01
      when tp.margembrutalucro >= 1.31 and tp.margembrutalucro <= 1.50 then (ttm.precounitario*ttm.quantidade) * 0.012
      else cast(tp.margembrutalucro as varchar) end) as totmargemnota,
      sum(ttm.quantidade * tp.custoreposicao)as totvalorcustorep,
      SUM(case when tp.margembrutalucro >= 1.15 and tp.margembrutalucro <= 1.30 then (tp.custoreposicao*ttm.quantidade) * 0.01
      when tp.margembrutalucro >= 1.31 and tp.margembrutalucro <= 1.50 then (tp.custoreposicao*ttm.quantidade) * 0.012
      else cast(tp.margembrutalucro as varchar) end) as totmargemprecocheio
      from tprd tp with (nolock) inner join titmmov ttm on (ttm.idprd = tp.idprd)
      inner join tmov tm on (tm.idmov = ttm.idmov)
      where tm.dataemissao >= '2011/11/01'
      and tm.dataemissao <='2011/11/01'
      and tm.CODTMV IN ('2.2.01','2.2.29')
      AND tm.codcfo not in('000337') and tm.STATUS <> 'C'
      group by tp.margembrutalucro)t1

group by margembrutalucro, totvalorliquido,totvalorcustorep, totmargemnota, totmargemprecocheio
      order by margembrutalucro

O resultado é esse:

Margem TotValorLiquido TotMargemNota TotValorCustoRep TotMargemPrecoCheio Lucro

1.2000 5542.17000000 55.42170000000 4451.71300000 44.51713000000 1090.45700000

1.2500 1945.53000000 19.45530000000 1447.97020000 14.47970200000 497.55980000

1.2700 3.80000000 .03800000000 3.00000000 .03000000000 .80000000

1.3000 200.20000000 2.00200000000 153.60500000 1.53605000000 46.59500000

1.5000 2261.45000000 27.13740000000 1510.72060000 18.12864720000 750.72940000

Preciso criar um campo chamado PERCENTUAL que pegue o campo TOTVALORLIQUIDO e compare com o somatório do campo "TotValorLiquido" encontrando o seu valor percentual em relação ao somatório, ou seja o resultado seria:

Margem TotValorLiquido Percentual TotMargemNota TotValorCustoRep TotMargemPrecoCheio Lucro

1.2000 5542.17000000 55,6825 55.42170000000 4451.71300000 44.51713000000 1090.45700000

1.2500 1945.53000000 19,5438 19.45530000000 1447.97020000 14.47970200000 497.55980000

1.2700 3.80000000 0,0381 .03800000000 3.00000000 .03000000000 .80000000

1.3000 200.20000000 2,011 2.00200000000 153.60500000 1.53605000000 46.59500000

1.5000 2261.45000000 22,72 7.13740000000 1510.72060000 18.12864720000 750.72940000

Agradeço caso alguém tenha uma idéia.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Bom dia ROMANVPP,

Crie uma temporária utilizando o select e depois faça a porcentagem q necessita, a partir da temporária.

Caso queira fazer no mesmo select, terá q repetir a parte do sql q retorna a soma dos valores, para fazer a porcentagem (vai ficar bem grande e mais complexo para realizar a manutenção).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...