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 :

[SqlServer2000] : Division par zéro !


Sujet :

Développement SQL Server

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Par défaut [SqlServer2000] : Division par zéro !
    Bonsoir

    Voila je rencontre un probleme, je sais pas si je vais aboutir a une solution ou pas

    j'exécute certain requête, mon probleme n'est pas avec mes requête, lors de l'exécution sur Analyseur de requête j'ai ce message :

    3 Lignes Affectée (s)

    Serveur : Msg 8134, Niveau 16, Etat 1, Ligne 1
    Division par zéro
    Bon j'ai compris cette erreur, ce que je voudrais savoir est-ce qu'il y a une solution pour évité ce genre d'erreur ?!

    je vous montre une de mes requête :

    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
     
    select Del.Nom_dp, ObjdelaiAc, (Del.Tci/sum(Del.Tot)) as Delai_Ac from(
    (select i.Nom_dp, ObjdelaiAc, 0 as Tot, sum(teff) as Tci  from Incident i
    join Concerne2 c on c.N_seq = i.N_seq
    join DP p on p.Nom_dp = i.Nom_dp
    join DD d on d.Nom_dd = p.Nom_dd
    join Objectif o on o.Nom_dd = d.Nom_dd
    where Nom_nature = 'Acier'
    group by i.Nom_dp, ObjdelaiAc, teff
    )
    UNION
    (select di.Nom_dp, ObjDelaiAc, count(*) as Tot, 0 as Tci from incident di
    join Concerne2 cc on cc.N_seq = di.N_seq
    join DP pp on pp.Nom_dp = di.Nom_dp
    join DD da on da.Nom_dd = pp.Nom_dd
    join Objectif bj on bj.Nom_dd = da.Nom_dd
    group by di.Nom_dp, ObjdelaiAc
    )
    )as Del
    group by  Nom_dp,ObjDelaiAc, Del.Tci, Del.Tot
    Je vous remercie d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il faut le gérer dans un CASE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case sum(Del.Tot) when 0 then 0 else Del.Tci/sum(Del.Tot) end as Delai_Ac

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Par défaut
    Je vais voir avec

    Merciii

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case sum(Del.Tot) when 0 then 0 else Del.Tci/sum(Del.Tot) end as Delai_Ac
    Je pinaillerai un peu en renvoyant NULL plutôt que 0 car la valeur n'a pas de sens dans ce cas là.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case sum(Del.Tot) when 0 then NULL else Del.Tci/sum(Del.Tot) end as Delai_Ac

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 272
    Par défaut
    Merci Weldar
    ça marche

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Prenez quand même en compte la remarque de 7gyY9w1ZY6ySRgPeaefZ.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Préférez le NULL, c'est même l'un des rares cas, que je donne en exemple dans mes cours, d'utilisation de la fonction NULLIF.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Division par zéro
    Par soltani1 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 18/05/2006, 09h42
  2. [Tableaux] Pb de division par zéro...
    Par blueice dans le forum Langage
    Réponses: 8
    Dernier message: 16/12/2005, 15h52
  3. [CR][VS.NET]Division par zéro
    Par San Soussy dans le forum SDK
    Réponses: 2
    Dernier message: 31/08/2005, 14h40
  4. [CR8.5] Problème de division par zéro sur formule
    Par franck.cvitrans dans le forum Formules
    Réponses: 3
    Dernier message: 10/06/2004, 13h41
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 18h14

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