IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Somme des variables numerique dans un déclancheur


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de zoheir13
    Inscrit en
    Décembre 2006
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 114
    Par défaut Somme des variables numerique dans un déclancheur
    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

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut
    Citation Envoyé par zoheir13 Voir le message
    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.
    Ce comportement est classique: A + B + NULL = NULL.

    Tu peux lire cette doc à ce sujet: Guide Firebird et NULL

    Dans ce cas l'utilisation de COALESCE résoudra ton problème.

    @+ Claudius

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Par défaut
    Salut
    donc il faut tester si Null affecter la valeur 0 a tes variable
    bonne chanse

  4. #4
    Membre confirmé Avatar de zoheir13
    Inscrit en
    Décembre 2006
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 114
    Par défaut
    Merci Claudius

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/05/2006, 14h30
  2. portée des variables globales dans un fichier js
    Par crakazoid dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 14/04/2006, 16h49
  3. Récupérer des variables Perl dans un script PHP
    Par barabath dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 01h27
  4. Réponses: 12
    Dernier message: 27/01/2006, 11h07
  5. utilisation des variables global dans tout le projet
    Par EYENGA Joël dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2006, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo