Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2007
brandolin brandolin is offline
Miembro
 
Registrado: jul 2003
Ubicación: Mendoza
Posts: 324
Poder: 21
brandolin Va por buen camino
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
Responder Con Cita
  #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.265
Poder: 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
  #3  
Antiguo 25-01-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 19
fdelamo Va por buen camino
Hola,

¿por que no se hace con la misma tabla?

Código SQL [-]
SELECT MIN(A.ID+1)
FROM TABLA A
LEFT JOIN TABLA B ON (A.ID = B.ID-1)
WHERE B.ID IS NULL
__________________
Sotoca Web
Responder Con Cita
  #4  
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.265
Poder: 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
Cita:
Empezado por brandolin
Lo que necesito es que (de ser posible) una instruccion sql me devuelva el numero 5 que es el "menor inexistente"
Perdón, no se cómo he leído antes el menaje que estaba pensando en la lista de todos los números no existentes, no en el mínimo. ¿?¿?¿?¿
__________________
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Controlar fecha menor en DateTimePicker Caro OOP 5 06-07-2006 01:52:59
ordenar un DBGrid de mayor a menor jmlifi Varios 2 03-11-2005 16:36:34
Excepción "Invalid property value" en botón inexistente melanthea C++ Builder 1 07-07-2004 18:12:39
MySql: ¿Una base de datos menor de edad? marto Debates 37 11-04-2004 19:49:14
Agrupamiento mostrando el menor agonzalez SQL 3 19-02-2004 23:29:19


La franja horaria es GMT +2. Ahora son las 15:48:01.


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
Copyright 1996-2007 Club Delphi