Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Limitar salida en un SELECT LIST( (https://www.clubdelphi.com/foros/showthread.php?t=95603)

Angel.Matilla 10-03-2022 19:18:55

Limitar salida en un SELECT LIST(
 
Tengo este query:
Código:

SELECT A.Codigo, A.Apellidos, A.Nombre, LIST(B.Fecha)
  FROM Ls01 A
  LEFT JOIN Recibos B ON A.Codigo = B.Codigo
 WHERE A.Codigo = :Codigo
 GROUP BY 1,2,3

Hay casos en los que es LIST tiene muchos registros; por ejemplo:
Cita:

2017-12-01,2018-01-01,2018-02-01,2017-11-22,2020-09-01,2017-06-08,2018-03-01,2017-05-02,2018-01-01,2018-04-02,2019-05-01,2017-02-09,2019-03-04,2020-04-01,2020-06-01,2020-07-01,2019-04-01,2017-03-03,1999-01-04,1999-07-05,1999-10-07,2000-01-05,2000-04-04,2000-07-06,2000-10-04,2001-01-04,2001-04-03,2001-07-03,2001-08-02,2001-09-04,2001-10-02,2001-11-06, etc. (como 35 ó 40 más)
y me gustaría limitar la misma a, pongamos por caso, los 10 últimos por fecha. También me gustaría saber si sería posible que las fechas en las salida las diera en el formato español dd/mm/aaaa.

Casimiro Notevi 11-03-2022 17:40:22

Ahí dice que dentro de list puedes poner una expresión, puede que acepte "limit xxx" o alguna otra expresión.

https://firebirdsql.org/refdocs/lang...func-list.html


cloayza 11-03-2022 19:11:07

Estimado Angel.Matilla, a la rápida podría ser una opción:

Código SQL [-]
SELECT A.Codigo,  A.Apellidos, A.Nombre, LIST(B.Fecha)
  FROM Ls01 A
  LEFT JOIN (SELECT First :Registros  Recibos.Codigo, Recibos.Fecha
                   FROM Recibos
                   WHERE Recibos.Codigo=:Codigo
                   ORDER BY Fecha Desc
                  )  B ON A.Codigo = B.Codigo
 WHERE A.Codigo = :Codigo
 GROUP BY 1,2,3

Registros: Parametro indicando cuantos requieres

Saludos cordiales

Angel.Matilla 12-03-2022 09:58:42

Gracias por las respuestas.
Cita:

Empezado por Casimiro Notevi (Mensaje 545966)
Ahí dice que dentro de list puedes poner una expresión, puede que acepte "limit xxx" o alguna otra expresión.

Lo cierto es que lo vi pero no lo entendí. :(
Cita:

Empezado por cloayza (Mensaje 545970)
Estimado Angel.Matilla, a la rápida podría ser una opción:

Voy a p`robarlo ahora mismo y os digo como ha ido.

Angel.Matilla 12-03-2022 10:03:52

Cita:

Empezado por cloayza (Mensaje 545970)
Estimado Angel.Matilla, a la rápida podría ser una opción:

Efectivamente funciona a la perfección. Muchas gracias.

Casimiro Notevi 12-03-2022 10:40:13

^\||/^\||/^\||/


La franja horaria es GMT +2. Ahora son las 04:33:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi