[firebase-br] unico registro

Elton da Motta Barbosa embarbosa em gmail.com
Qua Mar 18 09:05:44 -03 2009


é augusto essa lista ajuda bastante...
podem te ajudar também os artigos da firebase.

Vamos lá voltar então ao problema... ontem até postei uma pergunta
relacionada a esse query que te passei (esse que ficou lento) no forum
do firebird em inglês... mas ainda não li se alguém respondeu...
depois eu vou lá, mas já dá pra fazer mais um teste com o q vc passou.

>o indice IDX1 é do codigo do cliente
>            IDX4 é a data de vencimento

   Bem eu não tenho experiência com o FB 2.1, e provavelmente vc deve
encontrar jeito melhor de fazer esse select usando a clausula With (q
eu ainda não estou familiarizado...). Mas em todo caso, faz o favor,
execute o SQL abaixo:

select  cr.*, (current_date - cr.vencimento) as atraso
 from clientes cl
  inner join ctreceber cr on (cr.cliente = cl.codigo)
 where cr.registro =
(select first 1 crtemp.registro from ctreceber crtemp
 where crtemp.SITUACAO='D'
 and (crtemp.VENCIMENTO+0<CURRENT_DATE)
and crtemp.cliente = cl.codigo
ORDER BY (crtemp.vencimento+0) desc)

Você vai perceber q a alteração foi adicionar +0 após o vencimento
para evitar q o FB use o indice IDX4. Espere ele executar e depois
mande o resultado com o plan. Veja se fez alguma diferença.




Mais detalhes sobre a lista de discussão lista