Select Trava no Firebird 2.0

Firebird

21/05/2010

Boa tarde Pessoal
estou com um grande problema no firebird 2.0, sendo que não ocorre no 1.5 ou 1.03.
tenho um select que me recupera o primeiro codigo disponivel de uma tabela:

Select Min(CODIGO) From  CLIENTE Where CODIGO> 0 AND (CODIGO+ 1) Not In (Select CODIGO From CLIENTE)

Na minha tabela de CLIENTES qdo tenho acima de 3000 registros o firebird trava e nao consegue processar.

alguem tem alguma dica?


abraços e obrigado


douglas
Douglas Specht

Douglas Specht

Curtidas 0

Respostas

Tadeu Oliveira

Tadeu Oliveira

21/05/2010

Boa tarde.

Para que eu possa tentar te ajudar queria entender por que você seleciona o menor codigo e ele tem que ser > 0 e ainda o próximo + 1 não existir na própria tabela que vc está selecionando.

Se vc tiver cliente com código = 0 lógicamente o menor código vai ser sempre 0. em fim gostaría de entender melhor o que você deseja fazer.

Obrigado.
GOSTEI 0
João Sobrinho

João Sobrinho

21/05/2010

Colega, vê se ajuda:   SELECT MIN(CODIGO) + 1 FROM CLIENTE
WHERE NOT EXISTS(SELECT CODIGO FROM CLIENTE A WHERE A.CODIGO = (CLIENTE.CODIGO + 1))
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

21/05/2010

select first 1 (CODIGO+1)
from CLIENTE
where (CODIGO+1) Not In (Select CODIGO From CLIENTE)
order by 1


GOSTEI 0
POSTAR