[firebase-br] Ajuda para um Select Sum

Carlos Midia carlosmidia2013 em gmail.com
Qua Fev 24 08:08:28 -03 2016


Bom dia, Rafael desde já agradeço pela ajuda.
minha situação é a seguinte:
no relatório que preciso tem alguns filtros sendo o total de 7 no caso deu
fazer
um segundo select ex:

Select sum(p.Valor_Total) as Total_Geral
from PEDIDO p
 where p.Data_Pedido between :pDataini and :pDatafim
 and p.Fechado = :pConfirmada

terei que repetir estes 7 parâmetros, só se tivesse como eu pegar o
resultado do primeiro select .
tem outra maneira mais apropriada?
estou usando o delphi e clientdataset.


Em 23 de fevereiro de 2016 13:46, Rafael - FAV Ferro e Aço <
rafael em favcomercial.com.br> escreveu:

> Olá amigo.
> Sintaticamente o comando está errado.
> Como você tem várias colunas e apenas 1 delas tem função de "agrupamento",
> você deve incluir todas as demais no GROUP BY.
> No caso, seu select deveria ser assim:
>
> Select p.Id, p.Pedido_Num, p.Cliente, p.Data_Pedido, p.Valor_Total,
> sum(p.Valor_Total) as Total_Geral from PEDIDO p
>  where p.Data_Pedido between :pDataini and :pDatafim
>  and p.Fechado = :pConfirmada
>  GROUP BY p.Id, p.Pedido_Num, p.Cliente, p.Data_Pedido, p.Valor_Total
> order by p.data_pedido
>
> Agora, logicamente também tem uma falha aí.
> Se você quer o total de todos os registros que serão trazidos, você deve
> fazer essa soma fora da consulta.
> Muitas ferramentas de relatório têm essa função de acumulador.
>
> Você pode fazer também uma consulta paralela para pegar APENAS a somatória:
>
> Select sum(p.Valor_Total) as Total_Geral
> from PEDIDO p
>  where p.Data_Pedido between :pDataini and :pDatafim
>  and p.Fechado = :pConfirmada
>
> Perceba que essa consulta sempre retornará apenas UM registro.
> Espero que tenha ajudado.
>
>
> --
> Rafael Cardoso Stella
>
>
>
> Em 23 de fevereiro de 2016 12:36, Carlos Midia <carlosmidia2013 em gmail.com>
> escreveu:
>
> > Bom dia a todos, tenho um relatório com o seguinte select:
> >
> > Select p.Id, p.Pedido_Num, p.Cliente, p.Data_Pedido, p.Valor_Total,
> > sum(p.Valor_Total) as Total_Geral from PEDIDO p
> >  where p.Data_Pedido between :pDataini and :pDatafim
> >  and p.Fechado = :pConfirmada
> >  GROUP BY p.id order by p.data_pedido
> >
> > porém preciso do valor total dos pedidos mais esta dando erro devido ao
> SUM
> >
> > ex:
> >
> > 1 002 VENDA AO CONSUMIDOR 23/02/2016 10,00
> > 2 003 NOME DO CLIENTE           23/02/2016 10,00
> > =======================================
> > TOTAL                                                         20,00
> > ______________________________________________
> > 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
> > Para consultar mensagens antigas:
> > http://www.firebase.com.br/pesquisa_lista.html
> >
> ______________________________________________
> 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
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista