** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - SQL & TOP
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

SQL & TOP

 Responder Responder
Autor
Mensaje
McPegasus Ver desplegable
Habitual
Habitual


Unido: 02/Abril/2007
Localización: España
Estado: Sin conexión
Puntos: 54
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita McPegasus Cita  ResponderRespuesta Enlace directo a este mensaje Tema: SQL & TOP
    Enviado: 08/Julio/2019 a las 18:40
Hola foreros.

En una consulta utilizo la cláusula TOP para conocer n primeros registros y mostrarlos, luego otra sentencia SQL para conocer los siguientes n registros, así hasta el infinito y más allá :D.

En la segunda y posterior consulta para conocer los siguientes n registros, debo de partir filtrando desde el valor del último registro de la consulta anterior.

SELECT TOP 3 fldIdDispositivo, fldIdTercero, fldEtiqueta
FROM tblDispositivosAsignados
ORDER BY fldEtiqueta

SELECT TOP 3 fldIdDispositivo, fldIdTercero, fldEtiqueta
FROM tblDispositivosAsignados
WHERE fldEtiqueta > "Valor de la etiqueta"
ORDER BY fldEtiqueta

¿Habría alguna forma de conseguir lo mismo pero sin conocer el valor del último registro anterior?

SELECT TOP 3 DESDE 4 ...

O bien como indica este artículo: http://www.guillesql.es/Articulos/Paginar_datos_SQLServer2012_OFFSET_FETCH.aspx



Rafael [McPegasus]
Valencia
www.mcpegasus.net
..:: Tu Access, Mi Pasión ::..
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 11085
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Julio/2019 a las 20:38
Yo miraría este camino:
- crearía una tabla auxiliar con los datos que necesito, ordenados como quiero y numerada
- después ya es cosa de explotar esa tabla con un WHERE adecuado
    WHERE  Numerador Between ((3 * NumeroPasada - 1) + 1)  AND (3 * NumeroPasada)
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1033
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Julio/2019 a las 16:33
Otras posibilidades:

- https://stackoverflow.com/questions/8627032/ms-access-limit-x-y


Editado por pitxiku - 09/Julio/2019 a las 16:33
Arriba
McPegasus Ver desplegable
Habitual
Habitual


Unido: 02/Abril/2007
Localización: España
Estado: Sin conexión
Puntos: 54
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita McPegasus Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Julio/2019 a las 17:43
Hola Pitxiku,

Ok, es una solución también válida, me quedo el link para la siguiente ocasión.

Muchas gracias.
Rafael [McPegasus]
Valencia
www.mcpegasus.net
..:: Tu Access, Mi Pasión ::..
Arriba
McPegasus Ver desplegable
Habitual
Habitual


Unido: 02/Abril/2007
Localización: España
Estado: Sin conexión
Puntos: 54
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita McPegasus Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Julio/2019 a las 17:48
¿¿Ya de vuelta??

Lo he resuelto con una función que retorna el sql adecuado como origen del registro del informe, en total son 3 veces por ahora con un total de 18 columnas, 6 por informe.

Un abrazo y gracias de nuevo.


Rafael [McPegasus]
Valencia
www.mcpegasus.net
..:: Tu Access, Mi Pasión ::..
Arriba
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: Sin conexión
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Julio/2019 a las 08:32
Hola
Que nombre reciben estas consultes , o donde podria encontrar mas informacion ( ejemplos sobre todo) sobre este tipo de consultes?

select * from ( select * ....

Gracias
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 11085
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Julio/2019 a las 09:24
Hola kkodalton:

Una de las mejores guías de SQL (deberían incluirla en la ayuda de Access Tongue).



Ed. busca en manuales.


Editado por Mihura - 10/Julio/2019 a las 09:25
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5226
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita mounir Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Julio/2019 a las 15:58
Hola!

Creo que se refiere a las subconsultas anidadas:

https://www.aulaclic.es/sql/t_5_1.htm
Un Saludo.
Arriba
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: Sin conexión
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Julio/2019 a las 09:36
Gracias pero no es esto lo que busco. Las consultas anidadas despues del from esta el nombre de la tabla, però el ejemplo que ha enviado Pitxiku despues del from hay otra select.

SELECT TOP 10 A.Id
        FROM [
               SELECT TOP 30 ....
Yo diria que en el segundo select equivale al nombre de la tabla, pero en lugar de una tabla es otra consulta.
Es parecido a una consulta anidada pero diferente.

Gracias
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 11991
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Julio/2019 a las 09:52
El nombre que reciben (para mi) es el de subconsultas. Desconozco si tienen otro nombre.

Imaginemos el siguiente escenario:

ConsultaA que devuelve una determinada información (filtrada, agrupada y/o ordenada)

ConsultaB que devuelve información de la ConsultaA (también filtrada, agrupada y/o ordenadada)

Puedes hacer una ConsultaB así:

SELECT algo FROM ConsultaA WHERE....

o hacerla así:

SELECT algo FROM (SELECT unacosa FROM unatabla WHERE uncriterio) As Subconsulta

La ventaja de la segunda opción es que, si por error eliminas o modificas la ConsultaA, la ConsultaB no se ve afectada.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable