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

Select con Nº de fila

Estas en el tema de Select con Nº de fila en el foro de SQL Server en Foros del Web. Holaa tod@s Estoy tratando de hacer una select que aparentemente es sencilla pero no termino de dar con ello. Lo que intento hacer es una ...
  #1 (permalink)  
Antiguo 07/07/2008, 07:09
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 11 meses
Puntos: 0
Select con Nº de fila

Holaa tod@s

Estoy tratando de hacer una select que aparentemente es sencilla pero no termino de dar con ello. Lo que intento hacer es una select que me añada una columna por la izquierda indicando el número de fila en cada una de las filas.

Por ejemplo teniendo la siguiente tabla RESPONSABLES
Código:
Mes     Año           Nombre_titular
1         2008         Juan
2         2008         Pedro
3         2008         Manuel

......................................................
......................................................

1        2009          Andrés
2        2009          Miguel
Haciendo SELECT * FROM RESPONSABLES me devuelva lo siguietne:

Código:
Num     Mes     Año           Nombre_titular
1          1         2008         Juan
2          2         2008         Pedro
3          3         2008         Manuel

.................................................................
.................................................................

13         1        2009          Andrés
14         2        2009          Miguel

En esta tabla la clave primaria está compuesta por el mes y el año, no tiene un id numérico ni nada por el estilo. Sé que no es la forma más correcta pero no puedo modificar la estrucutra de la BD.

Muchas gracias,

PD: Siento si la preugnta está repetida. He buscado bastante por este foro y no he encontrado ninguna respuesta con una solución clara o que me ayude lo suficiente.

Última edición por Sil_va; 07/07/2008 a las 15:56
  #2 (permalink)  
Antiguo 07/07/2008, 10:26
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 18 años
Puntos: 8
Respuesta: Select con Nº de fila

Que tal.

Si es SQL Server 2000, tienes que guardar el resultado de tu consulta en un tabla temporal y posteriormente hacerle un select a esa tabla temporal.

Por ejemplo.

Código:
SELECT  Identity(int,1,1) as Num, Campo1, Campo2, CampoN
INTO #TablaTemp
FROM miTabla

SELECT * 
FROM #TablaTemp
ORDER BY Num

DROP TABLE #TablaTemp

Saludos!
  #3 (permalink)  
Antiguo 07/07/2008, 12:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Select con Nº de fila

Pues hace poco tuve la necesidad de hacer algo parecido a lo que tu deseas hacer, a ver si puedes adaptar el codigo, saludos.

-- IIslas
-- Creando un consecutivo, agrupado por una columna.
create table ciudades(
PAIS VARCHAR(20) not null,
CIUDAD VARCHAR(20) not null
)
GO

insert into ciudades(PAIS, CIUDAD)
values('MEXICO', 'MONTERREY')
insert into ciudades(PAIS, CIUDAD)
values('MEXICO', 'GUADALAJARA')
insert into ciudades(PAIS, CIUDAD)
values('MEXICO', 'DISTRITO FEDERAL')
insert into ciudades(PAIS, CIUDAD)
values('MEXICO', 'TIJUANA')
insert into ciudades(PAIS, CIUDAD)
values('ESPAÑA', 'VALENCIA')
insert into ciudades(PAIS, CIUDAD)
values('ESPAÑA', 'MADRID')
insert into ciudades(PAIS, CIUDAD)
values('ESPAÑA', 'BARCELONA')
insert into ciudades(PAIS, CIUDAD)
values('ITALIA', 'ROMA')
insert into ciudades(PAIS, CIUDAD)
values('ITALIA', 'MILAN')
GO

SELECT PAIS, (SELECT COUNT(*)
FROM ciudades AS I
WHERE I.PAIS=J.PAIS
AND I.CIUDAD>=J.CIUDAD) AS No
, CIUDAD
FROM ciudades AS J
ORDER BY PAIS, No
go

DROP TABLE ciudades
GO
  #4 (permalink)  
Antiguo 07/07/2008, 15:53
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Select con Nº de fila

Hola de nuevo.

Gracias por vuestras respuestas.
Se trata de SQL Server 2005. El problema es que no trabajo directamente contra una BD de SQL Server sino que a través de SQL Server 2005 hago unitlizo un Linked Server a Access 2003. no se hasta que punto puedo crear la tabla temporal para hacer lo que me sugeris.

En cuanto lo pruebe os comento que tal a ido. Muchas gracias por vuestra ayuda
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




La zona horaria es GMT -6. Ahora son las 13:38.