Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/10/2011, 15h48   #1
Invité de passage
 
Homme
Etudiant Ingénieur
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Etudiant Ingénieur
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 4
Points : 4
Par défaut Requête sql

Svp, je ne suis pas arrivé à résoudre les requêtes suivantes si quelqu'un peut m'aidez et merci d'avance :

-Les noms des clients qui ont commandé tous les produits commandés par le client N°3.

CLIENT(Numcli : NUMBER (7), Nom : VARCHAR(20), Prénom : VARCHAR(20)) ;

COMMANDE(Numcom : NUMBER (7), Numcli : NUMBER (7)) ;

PRODUIT (Numprod : NUMBER (7), Designation : VARCHAR (30)) ;

LIGNE_COMMANDE (Numprod : NUMBER (10), Numcom : NUMBER(7) ) ;

voila ce que j'ai fait
Code :
1
2
3
4
5
6
7
8
 
SELECT DISTINCT(nom) FROM client c,commande cmd,ligne_commande l,produit p
WHERE c.NUMCLI=cmd.NUMCLI AND cmd.NUMCOM=l.NUMCOM AND l.NUMPROD=p.numprod AND EXISTS(
SELECT p.numprod FROM produit p,commande cmd,client c,ligne_commande l
WHERE c.NUMCLI=3
AND c.NUMCLI=cmd.NUMCLI
AND cmd.NUMCOM=l.NUMCOM
AND l.numprod=p.numprod);
et merci encore un fois .
satrucci est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h52   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 545
Points : 7 545
Présente nous les requêtes que tu as essayées.
Nous pourrons alors t'aider à les mettre au point.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h53   #3
Membre habitué
 
Homme Gaëtan
Développeur Oracle
Inscription : mai 2006
Messages : 117
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan
Localisation : France

Informations professionnelles :
Activité : Développeur Oracle
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2006
Messages : 117
Points : 115
Points : 115
Bonjour,

Je sais que c'est un forum d'aide mais tu n'as pas une ébauche de requête comme ça on pourra plus te dire les erreurs et te conseiller. Car honnêtement quand on lit ton sujet ça ressemble a mes anciens cours où contrôle de SQL donc te donner la réponse sans que tu réfléchisses tu ne vas pas comprendre mieux !
attila771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 16h50   #4
Invité de passage
 
Homme
Etudiant Ingénieur
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Etudiant Ingénieur
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 4
Points : 4
voici ce que j'ai arrivé a faire :
Code :
1
2
3
4
5
6
7
8
 
SELECT DISTINCT(nom) FROM client c,commande cmd,ligne_commande l,produit p
WHERE c.NUMCLI=cmd.NUMCLI AND cmd.NUMCOM=l.NUMCOM AND l.NUMPROD=p.numprod AND EXISTS(
SELECT p.numprod FROM produit p,commande cmd,client c,ligne_commande l
WHERE c.NUMCLI=3
AND c.NUMCLI=cmd.NUMCLI
AND cmd.NUMCOM=l.NUMCOM
AND l.numprod=p.numprod);
veuillez me donner vos propositions et merci.
satrucci est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 17h01   #5
Invité de passage
 
Homme
Etudiant Ingénieur
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Etudiant Ingénieur
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 4
Points : 4
voila mon nouveau essai
Code :
1
2
3
4
5
6
7
8
SELECT DISTINCT(nom),p.numprod FROM client c,commande cmd,ligne_commande l1,produit p
WHERE c.NUMCLI=cmd.NUMCLI AND cmd.NUMCOM=l1.NUMCOM AND l1.NUMPROD=p.numprod AND EXISTS(
SELECT p.numprod FROM produit p,commande cmd,client c,ligne_commande l
WHERE c.NUMCLI=3
AND c.NUMCLI=cmd.NUMCLI
AND cmd.NUMCOM=l.NUMCOM
AND l.numprod=p.numprod
AND l.numprod=l1.numprod);
satrucci est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 20h27   #6
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Si c'est pour un cours ça n'est définitivement pas une requette facile.
Regarde l'article de SqlPro sur la division relationnelle pour te mettre sur une bonne voie.

Par contre dans la requête que tu proposes il y a 2 problèmes :
- Les alias de la requête principale et de la sous-requête sont identiques ce qui est faux, il doivent être différents.
- DISTINCT n'est pas une fonction. Il s'applique sur toute la ligne, les parenthèses autour de nom sont donc superflues.

N'hésite pas à revenir avec une autre proposition t'inspirant de l'article de SqlPro, si tu as toujours des difficultés avec la requête.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h14.


 
 
 
 
Partenaires

Hébergement Web