Conocer el menor inexistente
Les explico lo que necesito....
Tengo una secuencia de numeros 1,2,3,4,6,8,9,10 y por lo que se puede ver falta el numero 5, 7. Cada uno de estos numero es un registro de una tabla firebird 1.5. Lo que necesito es que (de ser posible) una instruccion sql me devuelva el numero 5 que es el "menor inexistente" PD: Actualmente lo estoy haciendo recorriendo de a uno los registros pero no es para nada optimo ya que cuando se tienen que recorrer cerca 100.000 registros demora "un poquito".... Bueno, desde ya muchas gracias |
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:
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:
Un saludo. |
Hola,
¿por que no se hace con la misma tabla?
|
Cita:
|
La franja horaria es GMT +2. Ahora son las 01:16:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi