Numeracion doble en SELECT

15/11/2007 - 13:59 por Cristian Meneses | Informe spam
Buenas a todos
Tengo un select que luego de varias tareas dentro de un procedimiento
almacenado devuelve algo como esto:

IDAcceso IDUsuario IDTurno Usuario Fecha
Hora Entrada (... + campos)
158 27 33 CARLOS
02/11/2007 08:05:30 1
170 27 33 CARLOS
02/11/2007 12:55:23 0
181 27 33 CARLOS
02/11/2007 16:01:04 1
244 27 33 CARLOS
02/11/2007 19:00:56 0
156 12 40 DANIEL
02/11/2007 08:02:30 1
175 12 40 DANIEL
02/11/2007 12:59:23 0
157 44 33 JOSE
02/11/2007 08:03:11 1
174 44 33 JOSE
02/11/2007 12:58:23 0
186 44 33 JOSE
02/11/2007 16:02:44 1
240 44 33 JOSE
02/11/2007 18:58:56 0

Quisiera numerar de alguna forma los grupos de accesos...Es decir
Carlos 1, Daniel 2, Jose 3
Es posible esto?
Saludos y gracias por su tiempo

Cristian Meneses

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
15/11/2007 - 15:34 | Informe spam
Cristian Meneses,

Cual version de SQL Server estas usando?

Si usas 2005, entonces puedes tratar con la funcion de ? (ranking) DENSE_RANK.

SELECT
...,
DENSE_RANK() OVER(PARTITION BY u.IDUsuario ORDER BY a.Fecha, a.Hora) as
rnk
FROM
...

Chequea los libros en linea para mas informacion sobre las funciones de
ranking.

AMB

"Cristian Meneses" wrote:

Buenas a todos
Tengo un select que luego de varias tareas dentro de un procedimiento
almacenado devuelve algo como esto:

IDAcceso IDUsuario IDTurno Usuario Fecha
Hora Entrada (... + campos)
158 27 33 CARLOS
02/11/2007 08:05:30 1
170 27 33 CARLOS
02/11/2007 12:55:23 0
181 27 33 CARLOS
02/11/2007 16:01:04 1
244 27 33 CARLOS
02/11/2007 19:00:56 0
156 12 40 DANIEL
02/11/2007 08:02:30 1
175 12 40 DANIEL
02/11/2007 12:59:23 0
157 44 33 JOSE
02/11/2007 08:03:11 1
174 44 33 JOSE
02/11/2007 12:58:23 0
186 44 33 JOSE
02/11/2007 16:02:44 1
240 44 33 JOSE
02/11/2007 18:58:56 0

Quisiera numerar de alguna forma los grupos de accesos...Es decir
Carlos 1, Daniel 2, Jose 3
Es posible esto?
Saludos y gracias por su tiempo

Cristian Meneses


Respuesta Responder a este mensaje
#2 Cristian Meneses
15/11/2007 - 16:09 | Informe spam
Buenas Alejandro
Gracias por tu respuesta... pero uso SQL 2000
Saludos

Cristian Meneses
Respuesta Responder a este mensaje
#3 Alejandro Mesa
15/11/2007 - 19:17 | Informe spam
Cristian Meneses,

Gracias por tu respuesta... pero uso SQL 2000



Ten eso en cuenta para cuando tengas alguna otra pregunta, de esa forma
otros no tienen que malgastar su tiempo.

Crea una vista con la union de las tablas usuarios y accesos. si necesitas
pasar un parametro, como FechaAcceso, entonces crea una funcion de usuario
que devuelva una tabla. Supongamos que usas una funcion de usuario, entonces:

select
*,
(
select count(distinct b.IDUsuario)
from dbo.GetAccesos('20070110') as b
where
b.IDUsuario <= a.IDUsuario
) as rnk
from
dbo.GetAccesos('20070110') as a
go

AMB

"Cristian Meneses" wrote:

Buenas Alejandro
Gracias por tu respuesta... pero uso SQL 2000
Saludos

Cristian Meneses

Respuesta Responder a este mensaje
#4 Alejandro Mesa
15/11/2007 - 19:19 | Informe spam
Correccion:

SELECT
...,
DENSE_RANK() OVER(PARTITION BY u.IDUsuario ORDER BY a.Fecha, a.Hora) as
rnk
FROM



SELECT
...,
DENSE_RANK() OVER(ORDER BY u.IDUsuario) as rnk
FROM


AMB

"Alejandro Mesa" wrote:

Cristian Meneses,

Cual version de SQL Server estas usando?

Si usas 2005, entonces puedes tratar con la funcion de ? (ranking) DENSE_RANK.

SELECT
...,
DENSE_RANK() OVER(PARTITION BY u.IDUsuario ORDER BY a.Fecha, a.Hora) as
rnk
FROM
...

Chequea los libros en linea para mas informacion sobre las funciones de
ranking.

AMB

"Cristian Meneses" wrote:

> Buenas a todos
> Tengo un select que luego de varias tareas dentro de un procedimiento
> almacenado devuelve algo como esto:
>
> IDAcceso IDUsuario IDTurno Usuario Fecha
> Hora Entrada (... + campos)
> 158 27 33 CARLOS
> 02/11/2007 08:05:30 1
> 170 27 33 CARLOS
> 02/11/2007 12:55:23 0
> 181 27 33 CARLOS
> 02/11/2007 16:01:04 1
> 244 27 33 CARLOS
> 02/11/2007 19:00:56 0
> 156 12 40 DANIEL
> 02/11/2007 08:02:30 1
> 175 12 40 DANIEL
> 02/11/2007 12:59:23 0
> 157 44 33 JOSE
> 02/11/2007 08:03:11 1
> 174 44 33 JOSE
> 02/11/2007 12:58:23 0
> 186 44 33 JOSE
> 02/11/2007 16:02:44 1
> 240 44 33 JOSE
> 02/11/2007 18:58:56 0
>
> Quisiera numerar de alguna forma los grupos de accesos...Es decir
> Carlos 1, Daniel 2, Jose 3
> Es posible esto?
> Saludos y gracias por su tiempo
>
> Cristian Meneses
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida