![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
Esta genera datos basados en un rango (no aleatorio) y devuelve una tabla como si se hubiera llenado manualmente. https://www.citusdata.com/blog/2018/...-generate-sql/
__________________
El malabarista. |
|
#2
|
||||
|
||||
|
Pues eso, que no es lo que está buscando
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
||||
|
||||
|
Yo creo que podrías sacerlo con algo así; Creo que todo lo que he utilizado existe en todos los motores de SQL (es estandard de SQL).
Tal vez cambie cómo se definen las variables, pero la sintaxis debe ser similar. Suponiendo que la tabla se llame TABLA1 y tenga estos valores: Cita:
Para ello se crea una temporal con todos los posibles, entre el maximo y mínimo existente en TABLA1, y luego se miran los que faltan.
En la imagen, lo primero es TABLA1 y lo segundo la consulta anterior ejecutada: ![]()
__________________
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. Última edición por Neftali [Germán.Estévez] fecha: 23-06-2022 a las 09:43:48. |
|
#4
|
|||
|
|||
|
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? |
|
#5
|
||||
|
||||
|
Entonces, tienes una tabla con un campo numérico.
Código:
1 2 4 5 6 8 9
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
|||
|
|||
|
Exactamente eso.
|
|
#7
|
||||
|
||||
|
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. |
|
#8
|
||||
|
||||
|
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.
|
|
#9
|
|||
|
|||
|
Propongo esta opción...Procedimiento almacenado en firebird
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|