Ver Mensaje Individual
  #2  
Antiguo 25-01-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.289
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Se me ocurre una forma, utilizando una tabla auxiliar, que seguramente será un poco más rápida a la hora de calcularlo...


TablaA (la de la secuencia de números que tu tienes...) ; Supongamos que es así...
--------------------------------------
Campo1 Campo2 Campo3
1______A________12783
2______B
________567
3______C________345
4______D________...
6______...
8
9


Creas la tabla de apoyo:

TablaB (sólo un campo autonumérico)
------------------------------------
num
1
2
3
4
5

...

La siguiente consulta te da los que no existen:

Código SQL [-]
// nomenclatura de SQl Server, pero la de FB/IB debe ser casi igual...
Select TablaB.num from TablaA 
right join TablaB on TablaA.Campo1=TablaB.num
where Campo1 is NULL

NOTAS:
1) La tabla de apoyo tiene que tener un número de registros tal qyue llegue al máximo (como mínimo) del campo1 de la tabla A.
2) Para saber cual es el último número válido de la tabla A, puedes usar un:

Código SQL [-]
  select max(TablaA.Campo1) from TablaA

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita