indice numerico personal sin huecos

21/05/2004 - 23:42 por joselitux | Informe spam
Hola

¿cual seria la forma más adecuada de programar en T-SQL algo que
verifique que en mi índice ordinal no existan huecos
dentro de los diferentes grupos de registros?

Me explico:

Imaginen esta tabla

IDENTITY NOMBRE ORDEN GRUPO
1 Pedro 1 comercial
2 Juan 2 comercial
3 Luis 3 comercial
4 Ana 4 comercial
5 Juana 1 directivo
6 Jose 2 directivo
7 Eva 3 directivo


Una de las normas de mi aplicación es que no puede existir un hueco en el
grupo, es decir, los comerciales se numeran correlativamente y no puede
ocurrir que los comerciales se numeren por ejemplo así: 1,2,4.

Lo que busco es programar un procedimiento almacenado que me devuelva el
identity de todos los registros en los que detecte que hay un salto
en el ordinal DENTRO DE UN GRUPO.

Gracias

Preguntas similare

Leer las respuestas

#6 Javier Loria
24/05/2004 - 19:14 | Informe spam
Hola:
Ok, creo que ya entendi. La forma mas facil es tener una tabla llena de
todos los numeros de y luego hacer una consulta como:
SELECT Completo.Grupo
, Completo.Numero
FROM
(SELECT Grupo.Grupo, Numeros.Numero
FROM (SELECT DISTINCT Grupo FROM Tabla) AS Grupos
CROSS JOIN Numeros
) AS Completo
LEFT JOIN Tabla
ON Completo.Grupo=Tabla.Nombre
AND Completo.Numero=Tabla.Orden
WHERE Tabla.Nombre IS NULL
Si no quieres o no puedes tener la tabla de Numeros es bastante mas
dificil, pero posible.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

joselitux escribio:
Me parece que no me expresé bien.

Mi problema no es cómo generar el número sino que teninedo ya la table
llena tengo que detectar los huecos que ha dejado la aplicación.

Necesito saber dónde están esos huecos para rellenarlos. El identity
me da igual, me preocupa el numero de orden de cada usuario dentro
del grupo.


n Sat,
22 May 2004 21:19:17 +0200, joselitux wrote:

Bueno, pues lo hice así porque en realidad hay como unas 50
categorias diferentes (no solo comerciales y directivos) y no me
pareció correcto hacer una tabla por cada categoría.


n Fri, 21 May 2004 22:20:26 -0600, Javier Loria wrote:

Hola:
Entonces no se puede usar identity, pero puedes usar un par de
mecanismos.
=>>> SELECT MAX(Identity)+1
FROM Tabla
WHERE GRUPO='Comercial'
joselitux escribio:
Hola

¿cual seria la forma más adecuada de programar en T-SQL algo que
verifique que en mi índice ordinal no existan huecos
dentro de los diferentes grupos de registros?

Me explico:

Imaginen esta tabla

IDENTITY NOMBRE ORDEN GRUPO
1 Pedro 1 comercial
2 Juan 2 comercial
3 Luis 3 comercial
4 Ana 4 comercial
5 Juana 1 directivo
6 Jose 2 directivo
7 Eva 3 directivo


Una de las normas de mi aplicación es que no puede existir un hueco
en el grupo, es decir, los comerciales se numeran correlativamente
y no puede ocurrir que los comerciales se numeren por ejemplo así:
1,2,4.

Lo que busco es programar un procedimiento almacenado que me
devuelva el identity de todos los registros en los que detecte que
hay un salto en el ordinal DENTRO DE UN GRUPO.

Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida