FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola, ante todo muchas gracias a todos por vuestras respuestas.
Quizás no me explique bien. Lo que necesito es ver que saltos hay en la numeración en un campo de una tabla (número factura). Lo necesito para ver si existen saltos en la numeración que le asigna un usuario a las facturas recibidas y/o emitidas en un programa contable. He probado la solución de duilioisola porque la veía más simple pero la ejecución de la consulta es muy lenta unos 20s en unos 2000 registros y falla cuando hay dos saltos consecutivos (1,2,5,6,7...). La solución de Neftali no la he probado pero la veo un poco complicada y creo que no obtendré más rapidez en los resultados, porque hay que ir insertando valores en una tabla. Tengo clientes con millones de registros. ¿Alguna otra solución? |
#2
|
||||
|
||||
Entonces, tienes una tabla con un campo numérico.
Código:
1 2 4 5 6 8 9 |
#3
|
|||
|
|||
Exactamente eso.
|
#4
|
||||
|
||||
Este SQL te devuelve una lista de números entre 1 y 100.
Con esto como base restrinjo el rango al min/max id de la tabla articulos. De este rango devuelvo solo los que no existen en la tabla de artículos. Se parece a la respuesta de Neftali, pero para Firebird. El único problema es que debido a la recursividad solo permite rangos de 1024 registros.
Con respecto a la velocidad, lo he probado con una tabla con 800 registros indexados por el ID y no ha tardado nada. |
#5
|
||||
|
||||
Si puedes crear un procedimiento que te devuelva la lista de números ya no hay problemas.
Lo he probado en una base con 23.000 registros y ha tardado 31ms La tabla tiene un índice único por el campo ID.
|
#6
|
|||
|
|||
Propongo esta opción...Procedimiento almacenado en firebird
|
#7
|
|||
|
|||
Muchas gracias a todos.
Al final me he decantado por la solución de duilioisola, iba un poco lento porque los campos por los que tenía que buscar no tenían un índice. Lo he creado y va perfecto. |
#8
|
|||
|
|||
Buenas noches,
Hace un tiempo tuve que hacer lo mismo porque un cliente cada vez que eliminaba un registro quería que el código que quedaba libre se utilizara nuevamente.
Aclaro que esto en su momento fue hecho en Oracle, pero como el código es SQL puro se pude implementar en cualquier motor de base de datos Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mostrar barras en Tchart sin huecos | cocute | Varios | 1 | 26-01-2015 14:45:36 |
Problema con Stored Procedure para actualizar tabla con datos de otra tabla. | Adrian Murua | MySQL | 4 | 04-02-2012 02:54:49 |
Huecos en una tabla | digongo | SQL | 5 | 20-12-2007 19:03:14 |
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla | Lucas_diaz1810 | Conexión con bases de datos | 1 | 25-12-2006 13:04:34 |
Tabla con huecos | NickName | Firebird e Interbase | 5 | 23-09-2003 19:42:09 |
|