From: | José Vicente Zahonero García <jovizaga(at)hotmail(dot)com> |
---|---|
To: | Anthony Sotolongo <asotolongo(at)gmail(dot)com>, Lautaro Palamidessi <lpalamidessi(at)conexia(dot)com> |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Transformar un procedimiento Firebird a PostgreSQL |
Date: | 2019-05-31 20:05:44 |
Message-ID: | VI1PR0401MB2653D763F129DC9F365FF366C8190@VI1PR0401MB2653.eurprd04.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gracias, pero podríais ponerme un ejemplo del uso de esas funciones, no las he usado nunca. Gracias. Saludos.
________________________________________
De: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
Enviat: divendres, 31 de maig de 2019 18:20
A: Lautaro Palamidessi; José Vicente Zahonero García
A/c: pgsql-es-ayuda(at)postgresql(dot)org
Tema: Re: Transformar un procedimiento Firebird a PostgreSQL
Hola José, coincido con Lautaro evalúa el uso de la función ventana LAG o LEAD, en dependencia del criterio de ordenamiento que requieras y tal vez ni necesites un hacer un procedimiento para eso, solo con la consulta podrás obtenerlo.
Saludos
El 31-05-19 a las 11:36, Lautaro Palamidessi escribió:
Buen dia, usa la funcionalidad LAG de las window functions: https://www.postgresql.org/docs/current/functions-window.html
Saludos
El vie., 31 may. 2019 a las 12:22, José Vicente Zahonero García (<jovizaga(at)hotmail(dot)com<mailto:jovizaga(at)hotmail(dot)com>>) escribió:
Hola de nuevo, tengo un procedimiento en Firebird que recorre una tabla comparando un registro con el inmediatamente posterior y que devuelve la mayor diferencia entre dos registros consecutivos. No sé como implementarlo en PostgreSQL. ¿Puede alguien echarme una mano?. Gracias.
CREATE OR ALTER PROCEDURE DIAS_SIN RETURNS (
"RESULT" INTEGER
)
AS
DECLARE VARIABLE AUX INTEGER;
BEGIN
AUX = 0;
RESULT = 0;
FOR
SELECT max(DATEDIFF(DAY FROM DT2.FECHA TO DT1.FECHA))
FROM DATOS DT1, DATOS DT2
WHERE DT1.SALIDA_NUM = DT2.SALIDA_NUM + 1
INTO :AUX
DO
IF(AUX > RESULT) THEN RESULT = AUX;
SUSPEND;
END
--
[logo conexia]<http://conexia.com/>
Lautaro Palamidessi
Consultor Técnico DBA
T: +5411 5173 6159
[facebook conexia]<https://goo.gl/OxO8kd> [twitter conexia] <https://goo.gl/XGpgl3> [linkedin conexia] <https://goo.gl/epcLtV> www.conexia.com<http://conexia.com/>
From | Date | Subject | |
---|---|---|---|
Next Message | Carlos T. Groero Carmona | 2019-05-31 21:23:57 | Re: Particionamiento de tablas postgresql 11 |
Previous Message | Alvaro Herrera | 2019-05-31 18:51:13 | Re: POSTGRES autovacumm launcher postgres |