Ver Mensaje Individual
  #2  
Antiguo 21-11-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Intenta así:
Código SQL [-]
SET TERM^;

CREATE TRIGGER EL_TRIGGER FOR LA_TABLA
ACTIVE BEFORE INSERT POSITION 0
AS
  DECLARE VARIABLE CURRYEAR INTEGER;
  DECLARE VARIABLE MAXNUM  INTEGER;
BEGIN
  CURRYEAR = COALESCE(EXTRACT(YEAR FROM NEW.FECHA), 
    EXTRACT(YEAR FROM CURRENT_DATE));
  
   SELECT COALESCE(MAX(NUMERO), 0) FROM LA_TABLA
   WHERE EXTRACT(YEAR FROM FECHA) = :CURRYEAR
   INTO :MAXNUM;
  
  IF (MAXNUM = 0) THEN 
    NEW.NUMERO = 1;
  ELSE
    NEW.NUMERO = MAXNUM  + 1;
END^

SET TERM;^

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita