.:: CONSULTA EM SQL ::.

Delphi

05/07/2003

Tenho uma tabela em InterBase com as seguintes colunas:

nome, cpf, data_vencimento, data_do_pagamento, valor_a_pagar, outro_valor, valor_total_pago

como faço uma consulta entre datas que mim retorne:

por dia, mês e ano,

- o valor total dos pagamentos
- o valor total dos pagamentos em atraso
- a quantidade de registros na consulta

Fico muito grato a quem poder mim ajudar!!! :oops:

Erivando Ramos


Erivando

Erivando

Curtidas 0

Respostas

Jeancamila

Jeancamila

05/07/2003

1) select sum (valor_total_pago)
from tabela
where data_do_pagamento between (:data1) and (:data2)

obs.: data1 e data2 são parametros a serem entrados pelo usuario que vc tera que tratar!

ex: query1.parambyname(´data1´).asdate := strtodate(edit1.text)

para usar por dia, mes, e ano sera necessario o uso dos comandos!

no delphi:

decodedate(data, ano, mes, dia);

as variaveis ano, dia e mes serão do tipo word. e data é a date que desejas extrair os dados.

na query:

where extract (day from campo_data) = :dia and extract (month from campo_data) = :mes

e assim por diante.

a quantidade de pagamentos em atraso basta adicionar a seguinte linha na query acima.

and data_do_pagamento > data_do_vencimento

e se vc quer o total de registros basta pegar com o comando:

query1.recordcount;

espero que tenha ajudado

Jean


GOSTEI 0
Jeancamila

Jeancamila

05/07/2003

1) select sum (valor_total_pago)
from tabela
where data_do_pagamento between (:data1) and (:data2)

obs.: data1 e data2 são parametros a serem entrados pelo usuario que vc tera que tratar!

ex: query1.parambyname(´data1´).asdate := strtodate(edit1.text)

para usar por dia, mes, e ano sera necessario o uso dos comandos!

no delphi:

decodedate(data, ano, mes, dia);

as variaveis ano, dia e mes serão do tipo word. e data é a date que desejas extrair os dados.

na query:

where extract (day from campo_data) = :dia and extract (month from campo_data) = :mes

e assim por diante.

a quantidade de pagamentos em atraso basta adicionar a seguinte linha na query acima.

and data_do_pagamento > data_do_vencimento

e se vc quer o total de registros basta pegar com o comando:

query1.recordcount;

espero que tenha ajudado

Jean


GOSTEI 0
Erivando

Erivando

05/07/2003

usei o:

query1.recordcount;

mas... só mim retornou 9 registros e eu tenho em minha tabela 833 registros! o que faço?

erivando


GOSTEI 0
POSTAR