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 Oracle Discussion :

faire une division entre deux sommes


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut faire une division entre deux sommes
    bonjour,

    je travaille avec le sgbd oracle et je veux faire le calcul suivant en utilisant SQL:

    je voudrais calculer le pourcentage de la division de la somme de l'attribut1 sur la somme de l'attribut 2; ma requête est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select
          table1.attribut3,
          table1.attribut4,
          table2.attribut5,
          (Sum(table1.attribut1)  / (Sum(table1.attribut2)) )  * 100 as Pourcent 
    from
          table1, table2
          where
                table1.attribut6 = table2.attribut1
    group by attribut3, attribut4, attribut5
    merci

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Oui, et ... Quel est le problème ?


  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 220
    Points
    220
    Par défaut
    Il faudrait en tout cas gérer le cas d'une division par 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Sum(table1.attribut1) / (NULLIF(Sum(table1.attribut2), 0))) * 100 as Pourcent
    De cette manière le résultat sera NULL si le diviseur est égal à 0.

    rbaraer

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    sql plus m'affiche l'erreur suivante

    ORA-00923: FROM keyword not found where expecte

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Attention, ne pas mettre le / seul sur une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SQL> select 1
      2  / 2
      3  from dual
      4  ;
     
           1/2
    ----------
            .5
     
    SQL> select 1
      2  /
    select 1
           *
    ERROR at line 1:ORA-00923: FROM keyword not found where expected

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    l'expression est sur la meme ligne mais j'ai cette erreur

  7. #7
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Enlève les sauts de ligne

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    en faite c 'etait le nom de l'alias du calcul qui etait trop grand

    merci

  9. #9
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    C'est bizarre ton erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL> select 1 as aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
      2  from dual;
    select 1 as aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                *
    ERROR at line 1:
    ORA-00972: identifier is too long

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

Discussions similaires

  1. Requete pour faire une différence entre deux dates
    Par PkoiTan2N dans le forum SQL
    Réponses: 2
    Dernier message: 28/04/2011, 13h14
  2. Faire une passerelle entre deux bases MysQL
    Par Alec6 dans le forum Débuter
    Réponses: 1
    Dernier message: 06/08/2009, 21h48
  3. [MySQL] Faire une jointure entre deux tables qui ne sont pas dans la même base de données
    Par sandddy dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 03/04/2008, 14h18
  4. faire une différence entre deux tables
    Par geay dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/09/2006, 15h33
  5. Faire une division entre deux chiffres?
    Par shun dans le forum Langage SQL
    Réponses: 9
    Dernier message: 09/09/2005, 16h37

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