Hola, tengo una base de datos de una tienda y quiero calcular el punto muerto (la tienda esta en punto muerto cuando lleva 3 meses sin beneficios). Para ello tengo una función a la que le doy como parámetro de entrada una fecha to_date. He visto por internet que podría poner algo como "add_months(fecha,-1)", pero no me convence porque, por ejemplo, si estoy en enero con esa línea creo que daría error (al estar en el mes 01 y restarle 1 se quedaría en mes 0 ).
Había pensado en hacer una función a parte que me calcule, dada una fecha, los dos meses anteriores, pero no sé bien como hacerlo para que sea correcto, tengo un poco de lío, si alguien me puede guiar sobre cómo podría hacerlo se lo agradecería.
Lo primero que pensé fue hacer esto:
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION punto_muerto(fecha DATE)
RETURN BOOLEAN IS res BOOLEAN;
fecha1 DATE;
fecha2 DATE;
BEGIN
fecha1 := add_months(fecha,-1);
fecha2 := add_months(fecha,-2);
IF ( ( BENEFICIO_MENSUAL(fecha) - GASTO_MENSUAL(fecha) ) < 0 AND ( BENEFICIO_MENSUAL(fecha1) - GASTO_MENSUAL(fecha1) ) < 0 AND
( BENEFICIO_MENSUAL(fecha2) - GASTO_MENSUAL(fecha2) ) < 0) THEN res:=TRUE;
ELSE res:=FALSE;
END IF;
RETURN res;
END punto_muerto;
En fin, como podéis comprobar, me tiene muy liada esta función. Ignorad el BOOLEAN ya se que no se puede poner y lo tengo que cambiar.