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

 Oracle Discussion :

Requêtes imbriquées


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 102
    Points : 43
    Points
    43
    Par défaut Requêtes imbriquées
    Bonsoir,

    Je débute avec oracle (10g version 10.2.0) et les requêtes SQL.
    J'ai trois tables Client, Livre, Vente.

    La table Client contient 4 champs : id_du_client ,nom_du_client, prénom_du_client, date_de_naissence_du_client tel que id_du_client est la clé primaire de cette table.
    La table Livre contient 4 champs : reference_du_livre, titre_du_livre, auteur_du_livre, prix_du_livre tel que reference_du_livre est la clé primaire de cette table.
    La table Vente contient 4 champs : id_du_client, reference_du_livre, quantitées_de_livres_vendue, date_de_vente_des_livres tel que id_du_client et reference_du_livre sont des clés étrangères de cette table.

    La question est :
    Donner la liste des livres achetés par chaque client avec le prix d'achat (prix*quantité).

    Voila se que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT reference_du_livre AS refl FROM Vente WHERE 
    (SELECT reference_du_livre,prix_du_livre FROM Livre WHERE reference_du_livre=refl);
    Mais ça ne marche pas et ça m'affiche cette erreur :
    ERREUR à la ligne 1 :
    ORA-00936: expression absente
    Donc comme c'est mes débuts j'ai vraiment pas compris, s'il vous plait aidez-moi c'est vraiment important merci d'avance pour votre aide .

  2. #2
    Membre habitué

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2008
    Messages : 110
    Points : 167
    Points
    167
    Par défaut
    tu peux regarder au niveau des jointures de tables, cela va t'aider.

  3. #3
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 674
    Points
    674
    Par défaut
    Sur le fond, le nom des colonnes n'est pas des plus elegants, {id_du_client ,nom_du_client, prénom_du_client} pourront, pour des raisons de lisibilite, etre facilement remplaces par {id, nom, prenom}, le tout sans accent, et pourquoi pas par customer {id, name, fistname} pour le rendre plus universel.

    Le code devrait ressembler a ca, restera juste a ajouter la gestion du prix...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT c.nom_du_client
          ,l.titre_du_livre
          ,SUM(v.quantite_de_livres_vendue) nombre
    FROM   client               c
          ,vente                v
          ,livre                l
    WHERE  v.id_du_client       = c.id_du_client
      AND  v.reference_du_livre = l.reference_du_livre
    GROUP BY
           c.nom_du_client
          ,l.titre_du_livre
    ORDER BY
           1
          ,2

  4. #4
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    Pourquoi commencer par les requêtes imbriquée, il faut être simple.

  5. #5
    Candidat au Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Autre réponse
    Bonjour,

    Tu pourrais également utiliser la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT 
     c.nom_du_client
    ,l.titre_du_livre
    ,SUM(v.quantite_de_livres_vendue) nombre  
    FROM client c INNER JOIN vente v ON v.id_du_client         = c.id_du_client
                       INNER JOIN livre    l ON v.reference_du_livre = l.reference_du_livre
    GROUP BY c.nom_du_client,l.titre_du_livre;
    Après pour faire plus beau, tu pourrais effectivement ajouter le tri sur « nom_du_client » et « titre_du_livre » on ajoutant la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORDER BY c.nom_du_client, l.titre_du_livre;

Discussions similaires

  1. Pb requête imbriquée
    Par ddams dans le forum Requêtes
    Réponses: 11
    Dernier message: 20/04/2004, 13h13
  2. [Requête] Faire une requête imbriquée?
    Par sekiryou dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2004, 23h52
  3. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 11h29
  4. Requêtes imbriquées ?
    Par Ph. B. dans le forum XMLRAD
    Réponses: 7
    Dernier message: 06/05/2003, 14h19
  5. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 17h15

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