Select Trava no Firebird 2.0
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
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
Curtidas 0
Respostas
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.
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
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))
WHERE NOT EXISTS(SELECT CODIGO FROM CLIENTE A WHERE A.CODIGO = (CLIENTE.CODIGO + 1))
GOSTEI 0
Emerson Nascimento
21/05/2010
select first 1 (CODIGO+1)
from CLIENTE
where (CODIGO+1) Not In (Select CODIGO From CLIENTE)
order by 1
from CLIENTE
where (CODIGO+1) Not In (Select CODIGO From CLIENTE)
order by 1
GOSTEI 0