[firebase-br] Duvida em Consulta com SUM

Marlon ETI marlon em esferati.com.br
Ter Jan 3 16:19:06 -03 2012


Realmente tanto a solução do Pedro, como do Conrado foram eficazes, mas
nesse momento sugiu uma nova dúvida rs desculpem o abuso.

SELECT CO_ASSOCIADO, SUM(VL_CONTRATADO) AS VL_TOTAL,
       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'F', VL_CONTRATADO,
0)) AS VL_FOLHA,
       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'D', VL_CONTRATADO,
0)) AS VL_DEBITO,
       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'B', VL_CONTRATADO,
0)) AS VL_BOLETO
  FROM TB_PRODUTOS_ASSOCIADOS PA
 GROUP BY CO_ASSOCIADO

SELECT CO_ASSOCIADO, SUM(VL_CONTRATADO) AS VL_TOTAL,
       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'F', VL_CONTRATADO,
0)) AS VL_FOLHA,
       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'D', VL_CONTRATADO,
0)) AS VL_DEBITO,
       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'B', VL_CONTRATADO,
0)) AS VL_BOLETO
  FROM TB_PRODUTOS_DEPENDENTES PD
 GROUP BY CO_ASSOCIADO

Tanto para a TB_PRODUTOS_ASSOCIADOS PA, quanto TB_PRODUTOS_DEPENDENTES PD
estou utilizando a mesma forma de consulta tendo ClientDataSet para cada
uma delas, agora eu estava querendo gerar um terceiro ClientDataSet onde eu
tivesse o SUM DA VL_TOTAL da TB_PRODUTOS_ASSOCIADOS PA com VL_TOTAL da
TB_PRODUTOS_DEPENDENTES PD com VL_TOTAL_GERAL e os demais valores
consecutivamente, VL_FOLHA_GERAL, VL_DEBITO_GERAL, VL_BOLETO_GERAL.

Conto com a ajuda de todos por mais uma vez.

Abraços

Em 3 de janeiro de 2012 13:24, <acf em andreconrado.net> escreveu:

> Boa tarde Pedro!!!
>
> Entendo que já tenha funcionado, não há nada que existe que ainda não
> possa ser melhorado.
>
> Seu código poderia ser reescrito sem o uso de sub-selects. Verifique se
> assim funciona:
>
>
> SELECT SUM(VL_CONTRATADO) AS VL_TOTAL,
>
>       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'F', VL_CONTRATADO,
> 0)) AS VL_FOLHA,
>
>       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'D', VL_CONTRATADO,
> 0)) AS VL_DEBITO,
>
>       SUM(IIF(DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'B', VL_CONTRATADO,
> 0)) AS VL_BOLETO
>
> FROM TB_PRODUTOS_ASSOCIADOS
>
> WHERE CO_ASSOCIADO = 1
>
> GROUP BY CO_ASSOCIADO
>
>
> Acredito que fique até mais legível,
>
> Abraços,
> Conrado.
>
>
>
>
> Citando Marlon ETI <marlon em esferati.com.br>:
>
>  Grato a todos pela ajuda por mais uma vez!
>>
>>
>>
>> From: Pedro Braga [mailto:bragaped em gmail.com]
>> Sent: terça-feira, 3 de janeiro de 2012 08:10
>> To: marlon em esferati.com.br; FireBase
>> Subject: Re: [firebase-br] Duvida em Consulta com SUM
>>
>>
>>
>> Você esqueceu de colocar a condição do associado nos sub-select por isso
>> está trazendo a somatoria geral a sql correta ficaria assim
>>
>> SELECT SUM(VL_CONTRATADO) AS VL_TOTAL,
>>
>> (SELECT SUM(VL_CONTRATADO) AS VL_FOLHA FROM TB_PRODUTOS_ASSOCIADOS
>>
>>  WHERE DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'F' AND
>> CO_ASSOCIADO=P.CO_ASSOCIADO) AS VL_FOLHA,
>>
>> (SELECT SUM(VL_CONTRATADO) AS VL_DEBITO FROM TB_PRODUTOS_ASSOCIADOS
>>
>>  WHERE DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'D' AND
>> CO_ASSOCIADO=P.CO_ASSOCIADO) AS VL_DEBITO,
>>
>> (SELECT SUM(VL_CONTRATADO) AS VL_BOLETO FROM TB_PRODUTOS_ASSOCIADOS
>>
>>  WHERE DS_ATIVO = 'S' AND DS_TIPO_COBRANCA = 'B' AND
>> CO_ASSOCIADO=P.CO_ASSOCIADO) AS VL_BOLETO
>>
>> FROM TB_PRODUTOS_ASSOCIADOS P WHERE CO_ASSOCIADO = 1
>>
>> GROUP BY CO_ASSOCIADO
>>
>> Pedro E. Braga
>>
>> ______________________________**________________
>> 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>
>>
>>
>
>
> André Conrado
> +55 21 88406232
>
> http://andreconrado.net
>
> "Posso todas as coisas naquele que me fortalece" Filipenses 4:13
>
>
>
> ______________________________**________________
> 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>
>



-- 
Marlon Conceição
Analista de Sistemas
Esfera TI - Soluções Simples e Completas
21 9492-0895
21 8463-4700

Favor levar em conta o meio-ambiente antes de imprimir este e-mail.
Por favor tenga en cuenta el medioambiente antes de imprimir este e-mail.
Please consider your environmental responsibility before printing this
e-mail.



Mais detalhes sobre a lista de discussão lista