Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Correlativo en consulta SQL

Estas en el tema de Correlativo en consulta SQL en el foro de SQL Server en Foros del Web. Hola amigos. Deseo generar una consulta SQL 2008 en la cual me devuelva en una columna un correlativo, el detalle es que este correlativo debe ...
  #1 (permalink)  
Antiguo 25/04/2013, 07:42
 
Fecha de Ingreso: octubre-2012
Ubicación: Lima
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Pregunta Correlativo en consulta SQL

Hola amigos.
Deseo generar una consulta SQL 2008 en la cual me devuelva en una columna un correlativo, el detalle es que este correlativo debe ser en base a un número máximo extraido desde la misma tabla. Les grafico para que me entiendan mejor.

TablaDetalle: Actualmente tiene estos datos.
id, descripción
1 xxxx
2 yyyy
3 zzzzz
4 aaaaa

Yo deseo hacer una inserción masiva proveniente del SELECT que menciono, algo así.
INSERT INTO TablaDetalle (id, descripcion)
SELECT ¿? , descripcion FROM TABLATEMPORAL

Nota: Mi TABLATEMPORAL solo contiene un campo con descripciones, y al momento de insertar en mi TablaDetalle quiero que se inicie con el número 5 que es que le sigue.
Espero me hayan entendido muchas gracias.

CR
  #2 (permalink)  
Antiguo 25/04/2013, 08:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Correlativo en consulta SQL

sip usa un campo identity :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 25/04/2013, 08:17
 
Fecha de Ingreso: octubre-2012
Ubicación: Lima
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Respuesta: Correlativo en consulta SQL

Libras, me gustaría mucho que fuese así de sencillo.
Me olvide mencionarlo, eero esa tabla que puse es solo un ejemplo, la que tengo en mi BD tienen muchos más campos y muchos mas registros. Y ese campo esta de tipo INT y NO puedo meter mano a cambiarle el tipo de dato.

Muchas gracias x tu apoyo, pero necesito otro tipo de solución
CR
  #4 (permalink)  
Antiguo 25/04/2013, 08:29
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Correlativo en consulta SQL

y un

Código SQL:
Ver original
  1. DECLARE @MAX INT
  2. selet @MAX=MAX(campo) FROM tabla GROUP BY id
  3.  
  4. INSERT INTO TablaDetalle (id, descripcion)
  5. SELECT @MAX, descripcion FROM TABLATEMPORAL

no te sirve?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 25/04/2013, 08:38
 
Fecha de Ingreso: octubre-2012
Ubicación: Lima
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Respuesta: Correlativo en consulta SQL

Si me sirve si es que meto ese INSERT dentro de un cursor y voy preguntando el máximo de la tabla y voy metiendo uno x uno.
Ya que mi TABLATEMPORAL tiene muchos registros, el ejemplo que das solo funciona para uno nada mas.

Aparentemente mi solución en primera instancia es usar CURSOR pero es lo que menos quería hacer por tema de recursos.
Pero si no existe de otra.. caballero tendre que usarlos.
Gracias

CR
  #6 (permalink)  
Antiguo 25/04/2013, 08:42
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Correlativo en consulta SQL

te puedes explicar un poco mejor que necesitas, en tu ejemplo mencionas solo una tabla, ahora si dices que vas a tomar los registros de la tabla "productiva" y meterlos a una temporal, ahi si puedes usar una columna de tipo identity para tus demas inserciones seria algo asi:

select id, descripcion, identity(int,1,1) rn into #temp from tabla

ahora cuando hagas una insercion a la #temp

insert into #temp (id,descripcion) values (0,'descripcion')

y te generaria un registro de tipo

0,descripcion,5

y ya terminando tus inserciones haces un

update #temp
set id=rn
from #temp

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: correlativo, insert, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:28.