Numerar registros de consulta
Publicado por Javier (6 intervenciones) el 01/03/2011 13:40:46
Hola a todos,
Resulta que estoy haciendo una pequeña base de datos en ACCESS y necesito numerar los registros de una consulta.
Mirando por San Google he encontrado que puedo hacerlo de esta manera:
Creamos un modulo con el siguiente codigo:
Public Function numerarSQL(nDato) As Long
'variable que no se pierde entre las distintas llamadas
Static nORDEN As Integer
If IsNull(nDato) Then 'si nDato es nulo: variable a cero y salida
nORDEN = 0
Exit Function
End If
nORDEN = nORDEN + 1
numerarSQL = nORDEN
End Function
Y luego ejecutamnos la siguiente consulta en SQL:
SELECT numerarSQL([Dato1]) AS RegNum, * FROM Tabla1
UNION ALL
SELECT numerarSQL(Null), * FROM Tabla1 WHERE 1=0
Hasta aqui todo bien, el problema es que yo ya tengo una consulta hecha con el siguiente codigo:
SELECT CLASIFICACION.NOMBRE, CLASIFICACION.APELLIDOS, CLASIFICACION.CATEGORIA, CLASIFICACION.SEXO, CLASIFICACION.CLUB, Count(CARRERAS.IDCARRERA) AS [CARRERAS DISput*daS], Sum(CLASIFICACION.PUNTOSCATEGORIA) AS SumaDePUNTOSCATEGORIA
FROM CARRERAS INNER JOIN CLASIFICACION ON CARRERAS.IDCARRERA = CLASIFICACION.IDCARRERA
GROUP BY CLASIFICACION.NOMBRE, CLASIFICACION.APELLIDOS, CLASIFICACION.CATEGORIA, CLASIFICACION.SEXO, CLASIFICACION.CLUB
HAVING (((CLASIFICACION.CATEGORIA)=[ESCRIBA CATEGORIA]))
ORDER BY Count(CARRERAS.IDCARRERA) DESC , Sum(CLASIFICACION.PUNTOSCATEGORIA);
Y lo que me gustaria es ahora añadir a esa consulta el codigo de arriba que hace que numere las filas, pero no se como hacerlo....
¿Como puedo unir a la consulta que ya tengo hecha, la consulta de los dos select con union para que ademas me numere los registros de la misma?
Gracias de antemano y espero haberme explicado correctamente.
Un saludo
Resulta que estoy haciendo una pequeña base de datos en ACCESS y necesito numerar los registros de una consulta.
Mirando por San Google he encontrado que puedo hacerlo de esta manera:
Creamos un modulo con el siguiente codigo:
Public Function numerarSQL(nDato) As Long
'variable que no se pierde entre las distintas llamadas
Static nORDEN As Integer
If IsNull(nDato) Then 'si nDato es nulo: variable a cero y salida
nORDEN = 0
Exit Function
End If
nORDEN = nORDEN + 1
numerarSQL = nORDEN
End Function
Y luego ejecutamnos la siguiente consulta en SQL:
SELECT numerarSQL([Dato1]) AS RegNum, * FROM Tabla1
UNION ALL
SELECT numerarSQL(Null), * FROM Tabla1 WHERE 1=0
Hasta aqui todo bien, el problema es que yo ya tengo una consulta hecha con el siguiente codigo:
SELECT CLASIFICACION.NOMBRE, CLASIFICACION.APELLIDOS, CLASIFICACION.CATEGORIA, CLASIFICACION.SEXO, CLASIFICACION.CLUB, Count(CARRERAS.IDCARRERA) AS [CARRERAS DISput*daS], Sum(CLASIFICACION.PUNTOSCATEGORIA) AS SumaDePUNTOSCATEGORIA
FROM CARRERAS INNER JOIN CLASIFICACION ON CARRERAS.IDCARRERA = CLASIFICACION.IDCARRERA
GROUP BY CLASIFICACION.NOMBRE, CLASIFICACION.APELLIDOS, CLASIFICACION.CATEGORIA, CLASIFICACION.SEXO, CLASIFICACION.CLUB
HAVING (((CLASIFICACION.CATEGORIA)=[ESCRIBA CATEGORIA]))
ORDER BY Count(CARRERAS.IDCARRERA) DESC , Sum(CLASIFICACION.PUNTOSCATEGORIA);
Y lo que me gustaria es ahora añadir a esa consulta el codigo de arriba que hace que numere las filas, pero no se como hacerlo....
¿Como puedo unir a la consulta que ya tengo hecha, la consulta de los dos select con union para que ademas me numere los registros de la misma?
Gracias de antemano y espero haberme explicado correctamente.
Un saludo
Valora esta pregunta
0