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

Développement SQL Server Discussion :

problème de division sur un champ null


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 34
    Points
    34
    Par défaut problème de division sur un champ null
    bonjour,

    dans ma SP je calcul une colonne qui est égal à la division de deux autre champs récupérés à partir d'autre table mais ça marche pas.

    il me renvoi une erreur 'division par zero':

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT      
                A.Monid
               ,B.ProdtId
               ,B.InsId
               ,A.SitId
               ,(B.Value -P.Value/B.Value,1 )As Value
               ,GETDATE()  
     
     
       from ArPValues A 
     
       JOIN AsValues B on B.ProdtId = A.ProdtId
       JOIN Prod  P ON P.ProdtId = B.ProdtId

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    je vais supposer que tu as omis le COALESCE en postant ta requête... :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ,COALESCE(B.Value -P.Value/B.Value,1 )AS Value
    ?

    Cependant, cela ne vient pas des NULLs, mais tu dois avoir quelque part B.Value=0, ce qui provoque l'erreur

    Reste à savoir ce que tu veux comme résultats dans ce cas, mais sur le principe tu peux faire quelque chose comme :
    Code SQL : 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
     
     
    SELECT      
                A.Monid
               ,B.ProdtId
               ,B.InsId
               ,A.SitId
               ,CASE B.Value
                          WHEN NULL THEN NULL -- ou autre...
                          WHEN 0 THEN 0 --ou autre
                          ELSE B.Value -P.Value/B.Value
               END AS Value
               ,GETDATE()  
     
     
       FROM ArPValues A 
     
       JOIN AsValues B ON B.ProdtId = A.ProdtId
       JOIN Prod  P ON P.ProdtId = B.ProdtId

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Points : 34
    Points
    34
    Par défaut
    j'ai réglé le problème en utilisant 'nullif '

    merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/04/2007, 17h49
  2. [XI] problème avec groupe sur un champ trié par origine ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 11/04/2007, 15h31
  3. Problème d'UPDATE sur un champ d'une table MyISAM
    Par alouette dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/07/2006, 20h17
  4. [MYSQL] Problème ORDER BY sur deux champs
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 8
    Dernier message: 14/10/2005, 16h46
  5. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56

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