Resultado de función PostgreSQL
Publicado por José Vicente (28 intervenciones) el 05/10/2019 14:15:33
Hola, tengo la siguiente función en PostgreSQL:
Mi problema es que no recorre del todo la tabla para devolver la máxima diferencia entre dos fechas, se queda con la primera diferencia que encuentra. Ya he probado con for, while y no hay manera, siempre me devuelve el mismo resultado que no es correcto.
¿Qué puedo hacer? Gracias. Un saludo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
CREATE OR REPLACE FUNCTION public.dias_sin()
RETURNS int AS $$
DECLARE
diferencia INT;
contador int;
provisional int;
resultado int :=0;
BEGIN
select into contador max (salida_num) from datos;
for provisional in 1..contador loop
SELECT max(DT2.FECHA::DATE - DT1.FECHA::DATE) INTO diferencia
FROM DATOS DT1, DATOS DT2 WHERE DT1.SALIDA_NUM = DT2.SALIDA_NUM + 1;
if resultado < diferencia then resultado := diferencia;
diferencia :=0;
end if;
end loop;
return resultado;
end;
$$ LANGUAGE plpgsql;
¿Qué puedo hacer? Gracias. Un saludo.
Valora esta pregunta


0