Array
(
)

Descobrir Lacunas numa sequencia

Dps
   - 29 set 2003

Tenho uma tabela que um dos campos chamado numero segue uma sequencia de 1 à 75000, quero saber se ele não tem nenhum buraco (lacuna entre um número e outro), vale ressaltar que para cada numero existem vários iguais, precisando portanto de usar o distinct. A única forma que consegui pesquisar foi relacionando o número posterior e o anterior, isso num universo de 10000 fica muito difícil de ser visualizado.
Alguém poderia me ajudar para conseguir a relação das lacunas existentes num intervalo de registro?
Muito Obrigada

Anderson_dpa
   - 20 out 2003

1º Criar uma tabela para inserir os números faltantes
Create table faltantes(Numero integer)

2º Executar o seguinte Script no Query Analiser

declare @registros integer
set @registros=1

while @Registro <= 75000
begin
If not Exists(Select numero from suatab where numero=@registros)
Begin
INSERT INTO FALTANTES(@REGISTROS)
Commit Tran
End
set @Registros=@Registros +1
end

Grande abraço e boa sorte

Anderson...
andersondpa@hotmail.com

Anderson_dpa
   - 20 out 2003

Depois é só dar um select na tabela Faltantes

Anderson...

Gatoledo
   - 03 mar 2004

Olá,

A idéia do Anderson é muito boa e funcional mas aí vai uma outra idéia.

1. Crie uma tabela temporária e faça o Insert dos valores de 1 até 75000.

2. Para localizar as lacunas faça:

select * from TEMP a
where not exists (select distinct chave from suatab b where a.chave=b.chave)

Fica a seu critério selecionar a forma mais rápida de implementar.

Gabriel