Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/05/2015, 02:46
Avatar de blueMuffin010
blueMuffin010
 
Fecha de Ingreso: mayo-2015
Ubicación: Sevilla
Mensajes: 19
Antigüedad: 9 años
Puntos: 0
Pregunta Problema fecha, mes natural

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 original
  1. CREATE OR REPLACE FUNCTION punto_muerto(fecha DATE)
  2. RETURN BOOLEAN IS res BOOLEAN;
  3. fecha1 DATE;
  4. fecha2 DATE;
  5.  
  6. BEGIN
  7.  fecha1 := add_months(fecha,-1);
  8.  fecha2 := add_months(fecha,-2);
  9.  
  10.  
  11. IF ( ( BENEFICIO_MENSUAL(fecha) - GASTO_MENSUAL(fecha) ) < 0 AND ( BENEFICIO_MENSUAL(fecha1) - GASTO_MENSUAL(fecha1) ) < 0 AND
  12.                   ( BENEFICIO_MENSUAL(fecha2) - GASTO_MENSUAL(fecha2) ) < 0) THEN res:=TRUE;
  13. ELSE res:=FALSE;
  14.     END IF;
  15. RETURN res;
  16. 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.

Última edición por gnzsoloyo; 08/05/2015 a las 08:38