[firebase-br] Ajuda com comando SUM

Sandro Souza escovadordebits em gmail.com
Ter Out 30 20:50:24 -03 2012


Bom dia/tarde/noite Fausto.

Faço aqui a minha humilde sugestão.

As suas duas consultas originais são as seguinte:

As quantidades e valores em aberto:

*SELECT SUM(ITEQDE * ITEEMB) AS QDEABERTO,
SUM((ITEQDE * ITEEMB)* MODPRE) AS VLRABERTO
FROM PEDITEM
WHERE(PEDCOD =  :PEDCOD)
AND   (ITEDFT IS NULL)
AND   (ITEDCN IS NULL)
*
E as quantidades e valores baixados:

*SELECT SUM(ITEQDE * ITEEMB) AS QDEBAIXADO,
SUM((ITEQDE * ITEEMB)*MODPRE) AS VLRBAIXADO
FROM PEDITEM
WHERE (PEDCOD = :PEDCOD)
  AND (ITEDFT IS NOT NULL)
AND(ITEDCN IS NULL)
*
Agora vamos transformá-los em "tabelas virtuais", ou seja, colocá-las no
FROM de um SELECT mais externo:

*SELECT
  A.QDEABERTO,
  A.VLRABERTO,
  B.QDEBAIXADO,
  B.VLRBAIXADO
FROM
( SELECT
    SUM(ITEQDE * ITEEMB)QDEABERTO,
    SUM((ITEQDE * ITEEMB)* MODPRE)VLRABERTO
  FROM
    PEDITEM
  WHERE
    (PEDCOD =  :PEDCOD)AND
    (ITEDFT IS NULL)AND
    (ITEDCN IS NULL)) A,
( SELECT
    SUM(ITEQDE * ITEEMB)QDEBAIXADO,
    SUM((ITEQDE * ITEEMB)*MODPRE)VLRBAIXADO
  FROM
    PEDITEM
  WHERE
    (PEDCOD = :PEDCOD)AND
    (ITEDFT IS NOT NULL)AND
    (ITEDCN IS NULL)) B
*
Agora é só testar.

Espero ter ajudado mais que atrapalhado. :D


Em 30 de outubro de 2012 16:48, Fausto <fausto.s.a em uol.com.br> escreveu:

> Pessoal, tenho um projeto, onde em determinada consulta, necessito
> retornaros seguinte valores da tabela de itens de pedidos:
> Quantidades em Aberto
> Valores em Aberto
> Quantidade Baixada
> Valores baixados
>
> Hoje tenho duas Sqls para fazer essa soma, e gostaria de ter isso em uma
> sql, abaixo mostro o conteúdo decada uma.
>
> Para somar os valores e quantidades em aberto:
> SELECT SUM(ITEQDE * ITEEMB) AS QDEABERTO,
> SUM((ITEQDE * ITEEMB)* MODPRE) AS VLRABERTO
> FROM PEDITEM
> WHERE(PEDCOD =  :PEDCOD)
> AND   (ITEDFT IS NULL)
> AND   (ITEDCN IS NULL)
>
> Para somar os valores e quantidades Baixados:
> SELECT SUM(ITEQDE * ITEEMB) AS QDEBAIXADO,
> SUM((ITEQDE * ITEEMB)*MODPRE) AS VLRBAIXADO
> FROM PEDITEM
> WHERE (PEDCOD = :PEDCOD)
>   AND (ITEDFT IS NOT NULL)
> AND(ITEDCN IS NULL)
>
> Estou tentando implementar um case when no sum, mas confesso já estou com
> os miolos cozinhando...
> Se alguém puder me dar uma dica fico desde já agradecido.
>
> --
> Fausto Alves
> Skype:faustoalves
> msn:faustoalves em com4.com.br
> Franca-SP
> Enviado pelo Mozilla Thunderbird
> http://br.mozdev.org/**thunderbird <http://br.mozdev.org/thunderbird>
>
> ______________________________**________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>



Mais detalhes sobre a lista de discussão lista