bonjour , DB 9.2 devloper s 10g
jai un probleme sur une requete:qui utilise des jointure externe sur plusieur tables dont deux contient des clé composé alant jusqu'a 3 attribut par clé.
les tables :
ET VOILA LA REQUETE : probleme : aucuen ligne retourné alors qu'il ya des donnéesCLIENT (num_cli,srevice_cli , nom_cli....)
COMNDE (num_comd,date_c,num_cli...)
PIECE (ref_piece,des_piece,qte,seuil...)
ACHAT_Piec (num_comd pk*fk,des_piece pk*fk,qté_P) -- client piece
HUILE (code_huile,des_huile,type_hle,qté_h)
ACHAT_HUILE (num_comd fk*pk,num_huile fk*pk,qte_com)--maint
PRESTATION (num_prest,des_prest)
DETAIL_Prest (num_comd pk*fk ,num_prest pk*fk,montant) --pour un client maintenance
VEH_PREST(n_chass*pk,num_compm fk*pk, des_vehm..) vehicule de la maintennance
PIECE_PREST(n_chass fk*pk, num_compm fk*pk,num_piece fk*pk,qté_p..)--piece utilisé
PREST_HUILE(n_chass fk*pk,num_compm fk*pk,num_huile fk*pk, qté_h..)--huile utilisé
la jointure externe sur clé concatené ( de 3 attribut) j maitrise pas aparement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT s.num_compm,s.n_chass,v.num_prest,t.des_prest prestation,h.des_huil, hp.qt_hp,p.des_piec piece,s.qt_pm FROM PREST_VEH v,COMD_PM c,PRESTATION t, PIECE_PREST s,PIECE p,HUILE_PREST hp,HUILE h WHERE v.num_compm =c.NUM_COMPM AND s.N_CHASS =v.N_CHASS AND s.NUM_COMPM=v.NUM_COMPM AND s.NUM_PREST=v.NUM_PREST AND hp.N_CHASS=v.N_CHASS AND hp.NUM_COMPM=v.NUM_COMPM AND hp.NUM_PREST=v.NUM_PREST AND hp.N_CHASS(+)=s.n_chass AND hp.num_compm(+)=s.num_compm AND hp.num_prest(+)=s.NUM_PREST AND v.num_prest=t.NUM_PREST AND s.NUM_PIECE=p.REF_PIEC AND hp.NUM_HL=h.CODE_HUIL
ALORS , une idé ??
PS: grosso modo t1.cl1(+)=t2.cl1(+) t1.cl2(+)=t2.cl2(+) t1.col3(+)=t2.col3(+)
ainssi de suite avec les autres>> mais si j f les + des deux coté j'aurais "ORA-01468 un prédicat ne peut référencer qu'une table en jointure externe".
Partager