Somar aggregates fidac

Delphi

Banco de Dados

18/08/2017

Olá,
Estou precisando usar o aggregates do FDQUERY usar so um sei como é mas quero fazer assim
o campo valor é o mesmo so que tem outro campo que diz se foi cartao ou dinheiro
quero somar o que é cartao e outro dinheiro

Exemplo do campo:
VALOR (DOUBLE)
TIPO_PAG (STRING ''C'' = CARTAO E ''D'' = DINHEIRO )
Marcos Cruz

Marcos Cruz

Curtidas 0

Respostas

Luiz Vichiatto

Luiz Vichiatto

18/08/2017

Para soma
select TIPO_PAG, sum(VALOR_PAGO) as SOMA 
group by TIPO_PAG
GOSTEI 0
Marcos Cruz

Marcos Cruz

18/08/2017

ola, so que nao quero fazer agrupado pois os sql sera normal iria usar no agregete mas vai ser o jeito eu calcular a parte , porque queria no mesmo grid
GOSTEI 0
Luiz Vichiatto

Luiz Vichiatto

18/08/2017

Marcos
Não sei se o SGBD que está utilizando permite, no MSSQL sei que funciona utilizando case, vou passar como ficaria o código, a tu vai precisar pesquisar a sintaxe no que está utilizando
SELECT SUM(IIF(TIPO_PAG='C',VALOR,0)) AS VALOR_C, SUM(IIF(TIPO_PAG='D',VALOR,0)) AS VALOR_D FROM PAGAMENTOS


Precisa testar quanto ao SGBD que utiliza, se funciona, no MSSQL funcionou.
GOSTEI 0
Luiz Vichiatto

Luiz Vichiatto

18/08/2017

Repara não que quando vem empolgação vou testando!!!
Se quiser tem como fazer colocar um goup by e separar por data
SELECT dt_pagamento, 
	SUM(IIF(TIPO_PAG='C',VALOR,0)) AS VALOR_C, 
	SUM(IIF(TIPO_PAG='D',VALOR,0)) AS VALOR_D, 
	(SUM(IIF(TIPO_PAG='C',VALOR,0)) - SUM(IIF(TIPO_PAG='D',VALOR,0))) AS DIFERENCA 
FROM PAGAMENTOS
group by dt_pagamento
GOSTEI 0
Marcos Cruz

Marcos Cruz

18/08/2017

certo obrigado .. desse da certo select TIPO_PAG, sum(VALOR_PAGO) as SOMA
group by TIPO_PAG

no mysql nao tem IIF, nao due.. mas vou fazer um separado mesmo para nao agrupar o que abre no grid
GOSTEI 0
Marcos Cruz

Marcos Cruz

18/08/2017

certo obrigado .. desse da certo select TIPO_PAG, sum(VALOR_PAGO) as SOMA
group by TIPO_PAG

no mysql nao tem IIF, nao due.. mas vou fazer um separado mesmo para nao agrupar o que abre no grid
GOSTEI 0
Luiz Vichiatto

Luiz Vichiatto

18/08/2017

Marcos
Pesquisei um pouco, e troque o 'IIF' por 'IF' !!!!

https://www.linhadecomando.com/mysql/mysql-trabalhando-com-if-no-select
GOSTEI 0
POSTAR