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 :

Division en sql


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut Division en sql
    Bonsoir à tous

    je souhaiterai faire la division du resultat des 2 requetes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select sum (NBRPLACEACHETE) from moyjourtauxoccup where idagence ='TravelAgency'
    (select capacite from type_avion where id_type_avion like 'Boeing474')
    mais je ne sais pas s'il y a un opérateur qui permet faire la divison.
    la BD est de type Oracle evidement.
    Merci d'avance

  2. #2
    Membre confirmé Avatar de alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut
    alors les amis un petit coup de pouce svp je suis bloqué

  3. #3
    Membre émérite
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Par défaut
    Tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT sum (NBRPLACEACHETE) / (SELECT capacite FROM type_avion WHERE id_type_avion LIKE 'Boeing474')
    FROM moyjourtauxoccup
    WHERE idagence ='TravelAgency'
    Mais il faut que la requête après le / ne renvoie qu'une seule valeur

    Bloon

  4. #4
    Membre confirmé Avatar de alexorcet
    Inscrit en
    Mai 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 86
    Par défaut
    c bon ça marche merci grand

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par Bloon Voir le message
    Tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT sum (NBRPLACEACHETE) / (SELECT capacite FROM type_avion WHERE id_type_avion LIKE 'Boeing474')
    FROM moyjourtauxoccup
    WHERE idagence ='TravelAgency'
    Mais il faut que la requête après le / ne renvoie qu'une seule valeur

    Bloon
    Il manque un group by dans ta requete!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create table type_avion as 
      select 1 capacite, 'Boeing474' id_type_avion from dual;
    create table moyjourtauxoccup as 
      select 1 nbrplaceachete, 'TravelAgency' idagence from dual;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT sum (NBRPLACEACHETE) / 
      (SELECT capacite FROM type_avion 
      WHERE id_type_avion LIKE 'Boeing474') x
    FROM moyjourtauxoccup
    WHERE idagence ='TravelAgency'
              *
    Error at line 2
    ORA-00937: not a single-group group function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT sum (NBRPLACEACHETE) / 
      (SELECT capacite FROM type_avion 
      WHERE id_type_avion LIKE 'Boeing474') x
    FROM moyjourtauxoccup
    WHERE idagence ='TravelAgency'
    GROUP BY ()
     
             X
    ----------
             1
    ou sans doute meilleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select 
      (SELECT sum (NBRPLACEACHETE) 
      FROM moyjourtauxoccup 
      WHERE idagence ='TravelAgency')
      / (SELECT capacite 
      FROM type_avion 
      WHERE id_type_avion LIKE 'Boeing474') x
    FROM DUAL
     
             X
    ----------
             1

  6. #6
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select 
      (SELECT sum (NBRPLACEACHETE) 
      FROM moyjourtauxoccup 
      WHERE idagence ='TravelAgency')
      / (SELECT capacite 
      FROM type_avion 
      WHERE id_type_avion LIKE 'Boeing474') x
    FROM DUAL
     
             X
    ----------
             1
    C'est obligé de le mettre dans le select ???

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT  a.d1/b.d2 from 
                    ( SELECT sum (NBRPLACEACHETE)  as d1 
                      FROM moyjourtauxoccup 
                      WHERE idagence ='TravelAgency') a,
                    (SELECT capacite as d2 
                     FROM type_avion 
                     WHERE id_type_avion LIKE 'Boeing474') b

    en admettant bien sur que chacune des requetes renvoie un seul resultat

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    en requête scalaire, c'est parfois plus rapide
    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 
      (SELECT sum (object_id) 
      FROM all_objects 
      WHERE object_type ='VIEW')
      / (SELECT sal 
      FROM emp 
      WHERE ename LIKE 'SCOTT') x
    FROM DUAL
     
             X
    ----------
    1524.55948
     
    Elapsed: 00:00:00.37
    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 a/b
    from 
      (SELECT sum (object_id) a 
      FROM all_objects 
      WHERE object_type ='VIEW')
      ,(SELECT sal b 
      FROM emp 
      WHERE ename LIKE 'SCOTT')
     
           A/B
    ----------
    1524.55948
     
    Elapsed: 00:00:01.71

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

Discussions similaires

  1. ACCESS SQL : division entière ?
    Par kikidrome dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/10/2014, 09h12
  2. division en sql
    Par looping dans le forum SQL
    Réponses: 2
    Dernier message: 10/10/2013, 11h50
  3. Division et SQL
    Par ra_inah dans le forum Oracle
    Réponses: 9
    Dernier message: 10/08/2006, 16h20
  4. [SQL Server] probléme de division
    Par MichMich29 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/06/2006, 15h38
  5. Division en SQL !!
    Par BGS dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/01/2005, 10h23

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