[firebase-br] Ajuda para um Select Sum

Alexandre camilo em apollosistemas.com.br
Qua Fev 24 15:08:44 -03 2016


Neste caso voce pode criar um campo do tipo Aggregate no ClientDataSet 
onde a expressão do mesmo será sum(Total_geral).


Alexandre Camilo.

Em 24/02/2016 12:51, Carlos Midia escreveu:
> Estou usando o componente RDprint.
>
> Em 24 de fevereiro de 2016 12:50, Carlos Midia <carlosmidia2013 em gmail.com>
> escreveu:
>
>> Boa tarde colegas, mesmo com o select abaixo não estou conseguindo pegar a
>> soma dos pedidos:
>>
>> 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
>>
>> esta exibindo apenas o valor do registro
>>
>>
>>
>> Em 24 de fevereiro de 2016 09:38, Alexandre <camilo em apollosistemas.com.br>
>> escreveu:
>>
>>> Bom dia Carlos
>>> neste caso seria melhor voce utilizar a primeira opção que o Rafael te
>>> passou
>>>
>>> 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
>>>
>>>
>>> Alexandre Camilo
>>>
>>>
>>>
>>>
>>> Em 24/02/2016 08:08, Carlos Midia escreveu:
>>>
>>>> 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
>>>>>
>>>>> ______________________________________________
>>>> 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
>>>>
>>>>
>>> --
>>>
>>> Alexandre Camilo
>>> +55 27 3233-4143
>>>
>>>
>>>
>>> ______________________________________________
>>> 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
>

-- 

Alexandre Camilo
+55 27 3233-4143





Mais detalhes sobre a lista de discussão lista