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 :

Divide by zero error encountered. [2012]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Par défaut Divide by zero error encountered.
    Bonjour,

    Je ne suis pas experte sur SQL Server mais j'avance à mon rythme.

    Je rencontre un souci sur une requête que j'ai créé.
    Je souhaite diviser un nombre par un autre (jusque là pas de soucis), en revanche, il se peut que ce nombre soit 0 et du coup j'ai le message d'erreur Divide by zero error encountered.

    J'ai essayé NULLIF mais je ne sais pas trop où le positionner.

    Pouvez-vous m'aider?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ROUND (CAST(SUM(CASE WHEN A.STATUS in (1) AND C.PAIEMENT IN ('SEPA en ligne') THEN 1 ELSE 0 END)*100 as float)/SUM (CASE WHEN a.STATUS in (1) AND C.PAIEMENT IN ('SEPA en ligne') then 1 else 0 end),2) AS [TAUX SEPA],
    Voici mon tableau :

    NOM AGENT ACCORDS REFUS CU TAUX OK SEPA CB CHEQUE
    %%%%%%% 0 9 9 0 0 0 0
    µµµµµµµµµ 0 1 1 0 0 0 0
    OOOOOOO 11 85 96 11,46 6 0 5

    Ma requête me permet de diviser le nombre de SEPA par le nombre d'ACCORDS. Evidemment 0 divisé par 0 ça coince mais je n'ai pas le choix.

    Merci par avance pour votre aide,

    Anne-so

  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
    Par défaut
    Bonjour,

    Il faut placer le NULLIF au niveau du diviseur, pourle remplacer par NULL s'il vaut 0. Vous n'aurez alors plus d'erreur, et obtiendrez NULL en résultat de calcul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ROUND (CAST(SUM(CASE WHEN A.STATUS in (1) AND C.PAIEMENT IN ('SEPA en ligne') THEN 1 ELSE 0 END)*100 as float)/NULLIF(SUM (CASE WHEN a.STATUS in (1) AND C.PAIEMENT IN ('SEPA en ligne') then 1 else 0 end),2) AS [TAUX SEPA],
    ou son equivalent indenté :
    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
     
    ROUND (
        CAST(
            SUM(
                CASE WHEN A.STATUS in (1) AND C.PAIEMENT IN ('SEPA en ligne') THEN 1 ELSE 0 END
            )*100 
            as float
        )
        /
        NULLIF(
            SUM (
                CASE WHEN a.STATUS in (1) AND C.PAIEMENT IN ('SEPA en ligne') then 1 else 0 end
            )
            , 0
        )
        ,2
    ) AS [TAUX SEPA],

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Par défaut
    Bonjour,

    Merci beaucoup. Ça fonctionne!

    Bonne journée.

    Anne-Sophie

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/08/2009, 09h47
  2. Désactiver Warning divide by zero
    Par Jrubio dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 07/05/2008, 12h56
  3. Floor / division par zero error
    Par Leclandestin dans le forum Langage
    Réponses: 5
    Dernier message: 05/03/2008, 19h38
  4. divide by zero
    Par casavba dans le forum Langage SQL
    Réponses: 13
    Dernier message: 21/11/2007, 17h32
  5. ERROR: pg_atoi: zero-length string
    Par steelspirit92 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h29

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