Requétes imbriquées
Résolu
most27
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
most27 Messages postés 71 Date d'inscription Statut Membre Dernière intervention -
most27 Messages postés 71 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Je débute avec oracle (10g version 10.2.0) et les requétes SQL.
J'ai 3 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 son des clées étrangére 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:
Mais ca ne marche pas ): et ca m'affiche cette erreur
Donc comme c'est mes débuts j'ai vraiment pas comprie,s'il vous play aider moi c'est vraiment important merci d'avance pour votre aide :).
Je débute avec oracle (10g version 10.2.0) et les requétes SQL.
J'ai 3 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 son des clées étrangére 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:
SQL> SELECT reference_du_livre AS refl FROM Vente WHERE (SELECT reference_du_livre,prix_du_livre FROM Livre WHERE reference_du_livre=refl);
Mais ca ne marche pas ): et ca m'affiche cette erreur
ERREUR à la ligne 1 : ORA-00936: expression absente
Donc comme c'est mes débuts j'ai vraiment pas comprie,s'il vous play aider moi c'est vraiment important merci d'avance pour votre aide :).
A voir également:
- Requétes imbriquées
- Expliquez les différences entre les différentes requêtes ✓ - Forum Programmation
- Nos systèmes ont détecté un trafic exceptionnel sur votre réseau informatique. cette page permet de vérifier que c'est bien vous qui envoyez des requêtes, et non un robot. que s'est-il passé ? - Forum MacOS
- Excel fonction si et ou imbriquées - Guide
- Réessayez plus tard il est possible que votre ordinateur ou votre réseau envoie des requêtes automatiques. pour la sécurité de nos utilisateurs, nous ne pouvons pas traiter votre demande pour le moment. pour en savoir plus, consultez notre page d'aide. valider - Forum Virus
- N26 votre appareil a envoyé trop de requêtes sur une courte période de temps. veuillez patienter. - Forum Consommation & Internet
1 réponse
Bonjour,
Je ne sais pas comment on peut faire les multiplications.
Sinon, la requête elle ressemblerai à ceci:
Je chercher pour faire la multiplication. Si je trouve je vous enverrai la solution.
Quand on fait des requête avec plusieurs tables, il faut indiquer comment elle sont reliées. Il faut utilisées les clés primaires.
Dans votre table Livre, je rajouterai la colonne id_livre car un livre peut avoir des références selon l'imprimeur
ou plusieurs livres peuvent porter le même nom.
Je pense aussi que je mettrai dans la table vente un id_vente car un client pourrai acheter plusieurs fois un même livre.
Dans votre table, il n'y a pas la possibilité de noter une remise (par exemple)
Sinon, il faudrait ajouter une colonne remise et une autre somme (prix normal - remise).
En SQL, il est préférable d'utiliser des noms de table simples.
titre_du_livre, auteur_du_livre serai plutôt titre_livre, ..
Il ne faut pas mettre d'accent car çà pourrait poser des problèmes lors des exécutions des requêtes.
Bonne continuation.
Je ne sais pas comment on peut faire les multiplications.
Sinon, la requête elle ressemblerai à ceci:
SELECT Livre.reference_du_livre AS refl, Client.prenom_du_client Vente.quantitées_de_livres_vendue FROM Livre, Client, Vente WHERE Vente.reference_du_livre = Livre.reference_du_livre AND Vente.id_du_client = Client.id_du_client;
Je chercher pour faire la multiplication. Si je trouve je vous enverrai la solution.
Quand on fait des requête avec plusieurs tables, il faut indiquer comment elle sont reliées. Il faut utilisées les clés primaires.
Dans votre table Livre, je rajouterai la colonne id_livre car un livre peut avoir des références selon l'imprimeur
ou plusieurs livres peuvent porter le même nom.
Je pense aussi que je mettrai dans la table vente un id_vente car un client pourrai acheter plusieurs fois un même livre.
Dans votre table, il n'y a pas la possibilité de noter une remise (par exemple)
Sinon, il faudrait ajouter une colonne remise et une autre somme (prix normal - remise).
En SQL, il est préférable d'utiliser des noms de table simples.
titre_du_livre, auteur_du_livre serai plutôt titre_livre, ..
Il ne faut pas mettre d'accent car çà pourrait poser des problèmes lors des exécutions des requêtes.
Bonne continuation.
Il suffit de faire la multiplication :
Excellentes remarques que ne pas utiliser les caractères accents, cédilles, et des noms de champs plus courts.