Requete Hierarchique avec 2 parametre [Résolu]

Messages postés
40
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
9 mai 2007
- - Dernière réponse : chaibat05
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
- 4 mai 2007 à 00:01
Bonjour à tous,

voila, j'essaye de passer 2 paramétre dans une requete hierarchique ; un dans le maitre et un dans le détails.
Par exemple voila mes 2 tables :

Table Voiture :                                           Table Personne
----------------                                          ----------------
ID_Voiture -----> clé                                Id_Personne ----> clé
Id_Personne ---> Clé étrangére                 Nom
Immatriculation                                          Prenom
Couleur                                                     Age

Voila en résumé ma requete c'est de sélectionné les personnes avec un age passé en paramétre (?) et d'afficher leurs voiture dont la couleur est passé aussi en paramétre(?)

Personne: Maitre
Voiture : Fille

Voila ma requête :

Personne :  
SELECT DISTINCT Personne.Id_Personne, Voiture.Id_Personne AS Expr1, Personne.Nom, Personne.Prenom
FROM Personne, Voiture
WHERE Personne.Id_Personne = Voiture.Id_Personne
AND (Personne.Age >= ?)

Voiture :
SELECT Voiture.Id_Personne, Personne.Id_Personne AS Expr1, Voiture.Immatriculation, Voiture.KiloMetrage
FROM Voiture, Personne
WHERE Voiture.Id_Personne = Personne.Id_Personne
AND (Voiture.Couleur = ?)

en essayant sa j'ai l'erreur :" Tous les paramétres obligatoires doivent êtres liés à un champ Parent"

Si quelqu'un peut m'aider, son aide serait vraiment précieuse
merci pour votre attention et bonne journée
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
3
Merci
ton erreur vient du fait que tu enumères deux fois Id_Personne
(Voiture.Id_Personne, Personne.Id_Personne AS Expr1)
alors que Personne.Id_Personne suffira  ) la relation se charge du reste

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 219 internautes nous ont dit merci ce mois-ci

Commenter la réponse de chaibat05
Messages postés
20
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
3 mai 2007
0
Merci
salut,
la requête suivante séléctionne tout les information sur un personne dont son Age égale à un parametre et sa voiture a une couleur paramétrée aussi si c'est ça ce que tu cherche!! :

select * from Personne where Age=" & parametreAge & " and Id_Personne in(select Id_Personne from Voiture where Couleur='" & parametreCouleur & "')
Commenter la réponse de amalVB
Messages postés
40
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
9 mai 2007
0
Merci
Merci Pour votre réponse
mais je crois que la votre requete est une requete ligne par ligne (plate), moi ce dont j'ai besoin c'est cette solution mais avec une requête Hiérarchique afin de l'utilisé dans un MSHFLEXGRID. Mon probleme se situe au niveau de la définition de la relation,  c'est la que je reçoit le message d'erreur.
encore merci et bonne journée.
Commenter la réponse de Strick9
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
0
Merci
Bonjour,
essaies ceci :


"SELECT Personne.Id_Personne, Personne.Nom, Personne.Prenom," & _
" Personne.Age, Voiture.ID_Voiture, Voiture.Immatriculation," & _
"  Voiture.Couleur" & _
" FROM Personne INNER JOIN Voiture ON Personne.Id_Personne =" & _
" Voiture.Id_Personne" & " WHERE (((Personne.Age)=" & paramAge &  _
" ) AND ((Voiture.Couleur)='" & paramCouleur & "'));"


Age étant numerique et Couleur String...
Commenter la réponse de chaibat05
Messages postés
40
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
9 mai 2007
0
Merci
Merci Pour ton aide Chaibat05,
la premiére solution que tu m'a donné je l ai utilisé dans un mshflexgrid mais le resultat etait toujours ligne par ligne, sinon j ai enlevé les Id_Personne qui ne sont pas nécessaire et sa marche a merveille.
voila mon sql

Requete Maitre:

SELECT DISTINCT Personne.Id_Personne, Personne.Nom, Personne.Prenom, Voiture.Couleur
 FROM Personne, Voiture
WHERE Personne.Id_Personne = Voiture.Id_Personne AND (Personne.Age >= ?)
And (voiture.couleur=?)

Requete Fille :

SELECT Voiture.Id_Personne, Voiture.Immatriculation, Voiture.Couleur as expr, Voiture.KiloMetrage
FROM Voiture, Personne WHERE Voiture.Id_Personne Personne.Id_Personne AND (Voiture.Couleur expr)

Lien :
Personne.Id_Personne   TO   Voiture.Id_Personne
Personne.Voiture.Couleur   TO   Voiture.expr

Merci encore et bonne soirée.
Commenter la réponse de Strick9
Messages postés
1884
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
0
Merci
de rien et bonne soirée à to aussi...
Commenter la réponse de chaibat05