Fórum resultado de soma usando Select em padrão DBF - alguém sabe #280831

09/05/2005

0

estou utilizando o PARADOX e gostaria de fazer uma consulta utilizando o Query...

SELECT CODIGO, CONTRATO, DATA, TIPO, VALOR, FROM CORRENTE

registros:
001 834 05/01/2005 C 150,00
001 834 05/01/2005 D 50,00
002 833 05/01/2005 C 300,00
002 833 05/01/2005 D 50,00

resultado:
001 834 05/01/2005 C 100,00
002 833 05/01/2005 C 250,00

Obs: nota-se que a instrução deverá fazer o calculo entre os valores do TIPO (C/D) e postar somente o resultado...


Walfrido

Walfrido

Responder

Posts

10/05/2005

Nilza

oi

nunca usei o paradox para saber, mais acho que uma das duas funcionará:

1 - select distinct(tipo), sum(valor) as totol from corrente

2 - select sum(valor) from corrente group by tipo

[]´s


Responder

Gostei + 0

10/05/2005

Carlosrm

walfrido

1) Você vai precisar desmembrar o campo valor em 2: um para os valores lançados a crédito e o outro para valores lançados a débito.
Depois disso, escreva a sql abaixo para trazer o resultado que vc quer, (testei no W98, Delphi 6, Bde + TQuery).


select codigo, contrato, max(data) as Data_Saldo, (sum(debito) - sum(credito)) as Saldo
from corrente
group by codigo, contrato
order by codigo

Para definir se é C ou D, na saída para o usuário, teste com um IF se é maior que 0.0 (´C´), menor que 0.0 (´D´) ou igual a 0.0 (´´)

carlosrm


Responder

Gostei + 0

10/05/2005

Walfrido

e como faço isso no paradox...


Responder

Gostei + 0

10/05/2005

Carlosrm

walfrido,

eu me expressei mal, desculpe; na realidade será necessário criar dois novos campos na sua tabea Corrente: um para armazenar os lançamentos a débito e o outro para atmazenar os lançamentos a crédito. Depois disso, o campo Valor e Tipo não serão mais necessários.
Sua tabela Corrente,db ficaria assim:

(Chave Primaria) Codigo Contrato Data Credito Debito
1 1 834 05/01/2005 150,00
2 1 834 05/01/2005 50,00
3 2 833 05/01/2005 300,00
4 2 833 05/01/2005 50,00


carlosrm


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar