Consulta sql con rows fetch first
Publicado por glomeal (2 intervenciones) el 03/11/2021 13:25:47
Hola, me duda es la siguiente, estoy realizando unas consultas sql server de la siguiente manera:
SELECT d.contrato, d.tipo, d.nserie, d.Inventario, d.marca, d.modelo, format(d.fentrada,'dd/MM/yyyy'),
format(d.fgarantia,'dd/MM/yyyy'), format(d.fmaquetado,'dd/MM/yyyy'), d.vmaqueta,
concat(ds.dpto,' - ',ds.centro) FROM devices d left JOIN destinos ds ON d.ubicacion=ds.code WHERE d.estado='INSTALADO' and ds.dpto like 'NOMBRE A BUSCAR%'
ORDER BY d.contrato, d.tipo OFFSET 0 ROWS FETCH FIRST 5 ROWS ONLY
SELECT d.contrato, d.tipo, d.nserie, d.Inventario, d.marca, d.modelo, format(d.fentrada,'dd/MM/yyyy'),
format(d.fgarantia,'dd/MM/yyyy'), format(d.fmaquetado,'dd/MM/yyyy'), d.vmaqueta,
concat(ds.dpto,' - ',ds.centro) FROM devices d left JOIN destinos ds ON d.ubicacion=ds.code WHERE d.estado='INSTALADO' and ds.dpto like 'NOMBRE A BUSCAR%'
ORDER BY d.contrato, d.tipo OFFSET 5 ROWS FETCH FIRST 5 ROWS ONLY
SELECT d.contrato, d.tipo, d.nserie, d.Inventario, d.marca, d.modelo, format(d.fentrada,'dd/MM/yyyy'),
format(d.fgarantia,'dd/MM/yyyy'), format(d.fmaquetado,'dd/MM/yyyy'), d.vmaqueta,
concat(ds.dpto,' - ',ds.centro) FROM devices d left JOIN destinos ds ON d.ubicacion=ds.code WHERE d.estado='INSTALADO' and ds.dpto like 'NOMBRE A BUSCAR%'
ORDER BY d.contrato, d.tipo OFFSET 10 ROWS FETCH FIRST 5 ROWS ONLY
Se supone que cada una de ellas debería devolverme 5 registros diferentes pero no es así, me devuelve cada consulta los mismos registros aunque cambie en el offset el valor, lo que si he probado es de no añadir en la cláusula where la condición "ds.dpto like ...." si eso lo comento me devuelve correctamente, pero si lo pongo ya me devuelve siempre en las tres consultas lo mismo, a que se debe?
Como sería la consulta correcta?
Muchas gracias, un saludo
SELECT d.contrato, d.tipo, d.nserie, d.Inventario, d.marca, d.modelo, format(d.fentrada,'dd/MM/yyyy'),
format(d.fgarantia,'dd/MM/yyyy'), format(d.fmaquetado,'dd/MM/yyyy'), d.vmaqueta,
concat(ds.dpto,' - ',ds.centro) FROM devices d left JOIN destinos ds ON d.ubicacion=ds.code WHERE d.estado='INSTALADO' and ds.dpto like 'NOMBRE A BUSCAR%'
ORDER BY d.contrato, d.tipo OFFSET 0 ROWS FETCH FIRST 5 ROWS ONLY
SELECT d.contrato, d.tipo, d.nserie, d.Inventario, d.marca, d.modelo, format(d.fentrada,'dd/MM/yyyy'),
format(d.fgarantia,'dd/MM/yyyy'), format(d.fmaquetado,'dd/MM/yyyy'), d.vmaqueta,
concat(ds.dpto,' - ',ds.centro) FROM devices d left JOIN destinos ds ON d.ubicacion=ds.code WHERE d.estado='INSTALADO' and ds.dpto like 'NOMBRE A BUSCAR%'
ORDER BY d.contrato, d.tipo OFFSET 5 ROWS FETCH FIRST 5 ROWS ONLY
SELECT d.contrato, d.tipo, d.nserie, d.Inventario, d.marca, d.modelo, format(d.fentrada,'dd/MM/yyyy'),
format(d.fgarantia,'dd/MM/yyyy'), format(d.fmaquetado,'dd/MM/yyyy'), d.vmaqueta,
concat(ds.dpto,' - ',ds.centro) FROM devices d left JOIN destinos ds ON d.ubicacion=ds.code WHERE d.estado='INSTALADO' and ds.dpto like 'NOMBRE A BUSCAR%'
ORDER BY d.contrato, d.tipo OFFSET 10 ROWS FETCH FIRST 5 ROWS ONLY
Se supone que cada una de ellas debería devolverme 5 registros diferentes pero no es así, me devuelve cada consulta los mismos registros aunque cambie en el offset el valor, lo que si he probado es de no añadir en la cláusula where la condición "ds.dpto like ...." si eso lo comento me devuelve correctamente, pero si lo pongo ya me devuelve siempre en las tres consultas lo mismo, a que se debe?
Como sería la consulta correcta?
Muchas gracias, un saludo
Valora esta pregunta


0