Requete Hierarchique avec 2 parametre

Résolu
Strick9 Messages postés 40 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 9 mai 2007 - 3 mai 2007 à 15:17
chaibat05 Messages postés 1883 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

6 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
3 mai 2007 à 16:00
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
3
amalVB Messages postés 20 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 3 mai 2007
3 mai 2007 à 15:28
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 & "')
0
Strick9 Messages postés 40 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 9 mai 2007
3 mai 2007 à 15:32
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.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
3 mai 2007 à 15:56
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Strick9 Messages postés 40 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 9 mai 2007
3 mai 2007 à 18:08
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.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 mai 2007 à 00:01
de rien et bonne soirée à to aussi...
0
Rejoignez-nous