Calculo de porcentagem subtraindo com o sum ja feito.

01/04/2013

2

SELECT p.PedCodigo,p.peddescontop,p.peddesconto, p.PedDatalocacao, p.PedDatadevolucao,p.PedStatusPgto, sum(i.iptotal) as total, c.clirazaosocial FROM PEDIDOS p
LEFT JOIN itenspedidos i on (i.pedCodigo = p.pedCodigo)
left join clientes c on (p.Clicodigo = c.clicodigo)



Galera preciso calcular a porcentagem do campo p.peddecontopor nao declarado na expressao e subtrair com o resultado sum(i.iptotal) como ficaria?tentei varias maneiras mais nao calcula certo ou da erro alguem tem uma dica?
Responder

Posts

01/04/2013

Chadoiam

na verdade o valor do p.pdedescontopor seria um valor inteiro, precisaria converter ele para porcentagem e subtrair como SUM na expressão.
Responder

01/04/2013

William

Meu amigo essa não está entre as instruções SQL mais bonitas que já escrevi, mas acho q deve ajudar vc ...rsrsr

Fiquei na dúvida se o campo "p.peddescontop" é o mesmo que "p.peddescontopor"!

Tive que fazer uns "CASTs" do INTEGER para o NUMERIC(2,2) e para o resultado final NUMERIC(9,2).

SELECT p.PedCodigo,p.peddescontop,p.peddesconto, p.PedDatalocacao, p.PedDatadevolucao,p.PedStatusPgto, sum(i.iptotal) as total, CAST(SUM(i.iptotal) - (SUM(i.iptotal) * (CAST(p.peddescontop AS NUMERIC(2,2)) / 100)) AS NUMERIC(9,2)) AS TOTAL_DESCONTO,
c.clirazaosocial
FROM PEDIDOS p LEFT JOIN itenspedidos i on (i.pedCodigo = p.pedCodigo)
LEFT JOIN clientes c on (p.Clicodigo = c.clicodigo)
GROUP BY p.PedCodigo,p.peddescontop,p.peddesconto, p.PedDatalocacao, p.PedDatadevolucao,p.PedStatusPgto, c.clirazaosocial

OBS.: Pode ser que de problema no GROUP BY, sempre que usamos funções agregadas e nele que o bicho q pega!

Qualquer dúvida posta aí....
Responder

01/04/2013

William

Meu amigo essa não está entre as instruções SQL mais bonitas que já escrevi, mas acho q deve ajudar vc ...rsrsr

Desculpe no primeiro estava faltando a TAG "CODE"!
****************************************************

Fiquei na dúvida se o campo "p.peddescontop" é o mesmo que "p.peddescontopor"!

Tive que fazer uns "CASTs" do INTEGER para o NUMERIC(2,2) e para o resultado final NUMERIC(9,2).
SELECT p.PedCodigo,p.peddescontop,p.peddesconto, p.PedDatalocacao, p.PedDatadevolucao,p.PedStatusPgto, sum(i.iptotal) as total, CAST(SUM(i.iptotal) - (SUM(i.iptotal) * (CAST(p.peddescontop AS NUMERIC(2,2)) / 100)) AS NUMERIC(9,2)) AS TOTAL_DESCONTO,
c.clirazaosocial 
FROM PEDIDOS p LEFT JOIN itenspedidos i on (i.pedCodigo = p.pedCodigo) 
LEFT JOIN clientes c on (p.Clicodigo = c.clicodigo)
GROUP BY p.PedCodigo,p.peddescontop,p.peddesconto, p.PedDatalocacao, p.PedDatadevolucao,p.PedStatusPgto, c.clirazaosocial

OBS.: Pode ser que de problema no GROUP BY, sempre que usamos funções agregadas e nele que o bicho q pega!

Qualquer dúvida posta aí....
Responder

01/04/2013

Chadoiam

caraca mano que codigo loco ahuaahuahuahuauh deu certo aqui, agradeço.
Responder

02/04/2013

William

Que bom que deu certo!

Estou encerrando o tópico, qualquer dúvida estamos por aí ....
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira