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

MS SQL Server Discussion :

Petit problème, très simple à résoudre à mon avis ! Merci d'avance


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Points : 30
    Points
    30
    Par défaut Petit problème, très simple à résoudre à mon avis ! Merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT (( SELECT SUM(commandes.total_ttc) - SUM(commandes.total_brut)
    FROM commandes) +  ( SELECT SUM(commandes_ext.total_ttc)  FROM commandes_ext) - ( SELECT SUM(frais.total_ttc) FROM frais)) AS benefice_total_ttc
    Bonjour,
    Voilà une requête qui fonctionne très bien, le seul soucie que j'ai, c'est que quand la table commande_ext ou frais est vide, le benefice total ne s'affiche plus ?!? comment régler ce problème ?

    Simplement quand j'enregistre une commande_ext et frais même à 0frs celà fonctionne, sinon si il manque un seul de ses éléments, ben le total disparaît...

    Un grand merci d'avance...

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Le problème vient du fait, que Sous Sql Server, par défaut, le NULL est "absorbant", c.à.d, par exemple 5+NULL résultat NULL
    Pour corriger ce genre de problème, il est conseillé de rajouter systématiquement la fonction ISNULL(xxx,0) dans les expressions arithmétiques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT (
       ISNULL(( SELECT SUM(commandes.total_ttc) - SUM(commandes.total_brut)
          FROM commandes
        ),0) 
        +
       ISNULL(( SELECT SUM(commandes_ext.total_ttc) 
         FROM commandes_ext),0)  
        -
        ISNULL(( SELECT SUM(frais.total_ttc) 
          FROM frais),0)
     
    ) AS benefice_total_ttc
    A+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    J'ai du utiliser plutôt la fonction IFNULL, j'ai vu que celà fonctionnais, voici comment j'ai du corriger mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ((SELECT IFNULL(SUM(commandes.total_ttc),0) - IFNULL(SUM(commandes.total_brut),0)
    FROM commandes) +  (SELECT IFNULL(SUM(commandes_ext.total_ttc),0) FROM commandes_ext) - (SELECT IFNULL(SUM(frais.total_ttc),0) FROM frais)) AS benefice_total_ttc
    En tout cas, c'est grâce à votre aide et un peu de détermination que celà fonctionne actuellement ! UN GRAND MERCI A VOUS HMIRA

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

Discussions similaires

  1. Avis sur mon CV- Merci d'avance !
    Par student68 dans le forum CV
    Réponses: 3
    Dernier message: 24/10/2013, 17h34
  2. un petit exemple trés simple du pattern repository
    Par mvc_dev dans le forum ASP.NET
    Réponses: 8
    Dernier message: 08/07/2011, 09h39
  3. Petit problème de logique à résoudre
    Par Ggamer dans le forum Général Python
    Réponses: 9
    Dernier message: 07/01/2010, 09h20
  4. Problème très simple : Les sockets.
    Par Chyokyka dans le forum Débuter
    Réponses: 3
    Dernier message: 23/07/2009, 11h42
  5. [batch] petit script très simple, help
    Par zeguzz dans le forum Windows
    Réponses: 2
    Dernier message: 11/10/2006, 00h42

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