GARANTIR DESCONTO

Fórum Quantidade de Parcelas Vencidas #353295

07/02/2008

0

Preciso fazer uma consulta que liste o(s) cliente(s) que tem mais que 3 parcelas vencidas.

Alguém pode me ajudar?

Obrigado.


Armindo

Armindo

Responder

Posts

07/02/2008

Andepunk

Voce esta se baseando na data de vencimento se for voce pode fazer assim SELECT COUNT(CLI_CODIGO) AS CODIGO FROM CLIENTES WHERE CURDATE()>DATA_VENCTO; depois so verificar se CODIGO for maior que 3 lista o cliente. faz um while na query para percorrer o cadastro todo. ai depende de onde voce quer mostrar esses clientes, em uma DBGrid, em um combobox, pode ser para impressao matricial ou a lase tipo relatorio, me avisa que te ajudo.. abraços



Responder

Gostei + 0

07/02/2008

Andepunk

[quote:347f41c998] Voce esta se baseando na data de vencimento se for voce pode fazer assim SELECT COUNT(CLI_CODIGO) AS CODIGO FROM CLIENTES WHERE CURDATE()>DATA_VENCTO GROUP BY CLI_CODIGO; ASSIM FUNCIONA O COUNT... OM GROUP BY depois so verificar se CODIGO for maior que 3 lista o cliente. faz um while na query para percorrer o cadastro todo. ai depende de onde voce quer mostrar esses clientes, em uma DBGrid, em um combobox, pode ser para impressao matricial ou a lase tipo relatorio, me avisa que te ajudo.. abraços
[/quote:347f41c998]


Responder

Gostei + 0

07/02/2008

Armindo

[quote:e07688cb00=´andepunk´][quote:e07688cb00] Voce esta se baseando na data de vencimento se for voce pode fazer assim SELECT COUNT(CLI_CODIGO) AS CODIGO FROM CLIENTES WHERE CURDATE()>DATA_VENCTO GROUP BY CLI_CODIGO; ASSIM FUNCIONA O COUNT... OM GROUP BY depois so verificar se CODIGO for maior que 3 lista o cliente. faz um while na query para percorrer o cadastro todo. ai depende de onde voce quer mostrar esses clientes, em uma DBGrid, em um combobox, pode ser para impressao matricial ou a lase tipo relatorio, me avisa que te ajudo.. abraços
[/quote:e07688cb00][/quote:e07688cb00]

Obrigado
Já me me ajudou, mas ainda não consegui 100¬.
O que eu preciso na verdade é saber quantos clientes tem mais do que 3 parcelas vencidas na tabela CONTAS_RECEBER.
Fiz assim:
SQLQuery1.SQL.Add(´SELECT COUNT(COD_CLIENTE) AS QTDE_PARCELAS FROM CONTASRECEBER WHERE VENCIMENTO <:VDATA_ATUAL GROUP BY CLIENTE´);
SQLQuery1.ParamByName(´VDATA_ATUAL´).AsDate := Date();

Essa consulta quase faz o que eu preciso.
Do jeito que está, se eu der um:
While not Query1.eof do ShowMessage(SQLQuery1.FieldByName(´COD_CLIENTE´).asString), será mostrada a quantidade de parcelas que cada cliente tem vencida. Porém, serão mostrados todos os clientes que têm contas vencidas .
O que que gostaria é de mostrar só os clientes com 3 parcelas ou mais vencidas e sem utilizar o loop while.
Tem como? Direto na instrução SQL seria possível já trazer só os clientes com 3 parcelas vencidas?


Responder

Gostei + 0

08/02/2008

Djjunior

mas fácil e sem looping

SELECT COUNT(COD_CLIENTE) AS QTDE_PARCELAS 
FROM CONTASRECEBER 
WHERE VENCIMENTO <:VDATA_ATUAL GROUP BY CLIENTE
having count(COD_CLIENTE) > :qtde


SQLQuery1.ParamByName(´VDATA_ATUAL´).AsDate := Date();
SQLQuery1.ParamByName(´qtde´).AsInteger := 3;


Responder

Gostei + 0

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

Aceitar