SQL & TOP |
Responder |
Autor | |
McPegasus
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 02/Abril/2007 Localización: España Estado: Sin conexión Puntos: 81 |
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 ::.. |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
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)
|
|
pitxiku
Colaborador Unido: 27/Septiembre/2017 Localización: En mi casa Estado: Sin conexión Puntos: 1518 |
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 |
|
McPegasus
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 02/Abril/2007 Localización: España Estado: Sin conexión Puntos: 81 |
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 ::.. |
|
McPegasus
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 02/Abril/2007 Localización: España Estado: Sin conexión Puntos: 81 |
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 ::.. |
|
kkodalton
Nuevo Unido: 01/Diciembre/2011 Localización: España Estado: Sin conexión Puntos: 32 |
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 |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
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 ). Ed. busca en manuales.
Editado por Mihura - 10/Julio/2019 a las 09:25 |
|
mounir
Colaborador Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6479 |
Enviado: 10/Julio/2019 a las 15:58 |
Un Saludo.
|
|
kkodalton
Nuevo Unido: 01/Diciembre/2011 Localización: España Estado: Sin conexión Puntos: 32 |
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 |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14746 |
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
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |