Salut,

J'ai un problème dans la somme des variables numérique dans mes déclancheurs lorsque l'un de ces variables est null, il affiche tjr comme resultat une valeur null.

voici un exemple de déclancheur la valeur de OPERATION.MT_ENGAGER_OP est null si MEE = null ou MEC = null ou MEV = null

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
AS
  DECLARE VARIABLE MEE   NUMERIC(15,2);
  DECLARE VARIABLE MEC   NUMERIC(15,2);
  DECLARE VARIABLE MEV   NUMERIC(15,2);
  DECLARE VARIABLE MCE   NUMERIC(15,2);
  DECLARE VARIABLE MCC   NUMERIC(15,2);
  DECLARE VARIABLE MCV   NUMERIC(15,2);
 
BEGIN
  SELECT SUM(EE.MONTANT_ENGAGE_ACT), SUM(EE.MONTANT_CONSOM_ENGAGE)
  FROM   ENGAGEMENT_ETUDE EE
  WHERE  EE.NUM_OP = NEW.NUM_OP
  INTO :MEE, :MCE ;
 
  SELECT SUM(EC.MONTANT_ENGAGC_ACTUAL), SUM(EC.MONTANT_CONSOM_ENGAGC)
  FROM   ENGAGEMENT_CONSTRUCTION EC
  WHERE  EC.NUM_OP = NEW.NUM_OP
  AND EC.NUM_TYPE_LOT = 2
  INTO :MEC, :MCC ;
 
  SELECT SUM(EC.MONTANT_ENGAGC_ACTUAL), SUM(EC.MONTANT_CONSOM_ENGAGC)
  FROM   ENGAGEMENT_CONSTRUCTION EC
  WHERE  EC.NUM_OP = NEW.NUM_OP
  AND EC.NUM_TYPE_LOT = 3
  INTO :MEV, :MCV ;
 
  UPDATE OPERATION
  SET OPERATION.MT_ENGAGER_OP = :MEE + :MEC + :MEV,
      OPERATION.MT_ENGAGER_ETUDE_OP = :MEE,
      OPERATION.MT_ENGAGER_CONST_OP = :MEC,
      OPERATION.MT_ENGAGER_VRD_OP = :MEV ,
      OPERATION.MT_CONSOM_ETUDE_OP = :MCE,
      OPERATION.MT_CONSOM_CONST_OP = :MCC,
      OPERATION.MT_CONSOM_VRD_OP = :MCV,
      OPERATION.MT_CONSOM_OP = :MCE + :MCC + :MCV,
      OPERATION.SOLDE_ETUDE_OP = :MEE - :MCE,
      OPERATION.SOLDE_CONST_OP = :MEC - :MCC,
      OPERATION.SOLDE_VRD_OP = :MEV - :MCV,
      OPERATION.SOLDE_OP = :MEE + :MEC + :MEV - :MCE - :MCC - :MCV
  WHERE OPERATION.NUM_OP = NEW.NUM_OP;
 
POST_EVENT 'ENGAGEMENT_CONSTRUCTION_EVENT';
 
END