Problème jointure requête sql.

Problème jointure requête sql. - SQL/NoSQL - Programmation

Marsh Posté le 18-03-2013 à 16:34:36    

Bonjour,
 
J'ai un petit problème sur une requête sql sous oracle.
La voici:
 

Code :
  1. SELECT 
  2. a.adr_rue,
  3. a.adr_num,
  4. a.adr_cp,
  5. a.adr_ville,
  6. m.role_per,
  7. m.situation_per,
  8. m.prenom_per,
  9. m.nom_per,
  10. m.email_perso_per,
  11. m.tel_perso_per,
  12. m.tel_portable_per,
  13. m.adr_num_per,
  14. m.adr_rue_per,
  15. m.adr_cp_per,
  16. m.adr_ville_per,
  17. m.profession_per,
  18.         p.date_naissance_per,
  19.         il.code_lie,
  20.         il.nom_lie,
  21. f.numero_alloc_fam,
  22. i.date2_debut_parent_ins,
  23.         '#Date début de période ../../....#' date_debut,
  24.         '#Date fin de période ../../....#' date_fin,
  25.         COUNT(DISTINCT date_rsv) nb_jours
  26. FROM    cr_inscription  i
  27.     INNER JOIN
  28.         cr_famille      f
  29.         ON  i.id_fam = f.id_fam
  30.     INNER JOIN
  31.         cr_personne     p
  32.         ON  i.id_per_ins = p.id_per
  33.     INNER JOIN
  34.         cr_inscription_lieu     il
  35.         ON  i.id_ins = il.id_ins
  36.     INNER JOIN
  37. cr_adresse a
  38. ON f.id_adr = a.id_adr
  39.     INNER JOIN
  40. cr_membre_famille m
  41. ON f.id_fam = m.id_fam
  42.     INNER JOIN
  43.         cr_inscription_presence ip
  44.         ON  i.id_ins = ip.id_ins
  45.     INNER JOIN
  46. cr_famille_contact fc
  47. ON f.id_fam = fc.id_fam
  48.    
  49. WHERE   -- Restrcition sur la période
  50.         ip.date_rsv >= to_number(to_char(to_date('#Date début de période ../../....#'),'YYYYMMDD'))
  51.     AND ip.date_rsv <= to_number(to_char(to_date('#Date fin de période ../../....#'),'YYYYMMDD'))
  52.     AND LOWER(il.code_lie) = lower('#Libellé court du lieu :#')
  53.         --Que les présences
  54.     AND ip.type_heure_rsv = 'P'
  55. GROUP BY
  56.        
  57.         a.adr_rue,
  58. a.adr_num,
  59. a.adr_cp,
  60. a.adr_ville,
  61. m.role_per,
  62. m.situation_per,
  63. m.prenom_per,
  64. m.nom_per,
  65. m.email_perso_per,
  66. m.tel_perso_per,
  67. m.tel_portable_per,
  68. m.adr_num_per,
  69. m.adr_rue_per,
  70. m.adr_cp_per,
  71. m.adr_ville_per,
  72. m.profession_per,
  73.         p.date_naissance_per,
  74.         il.code_lie,
  75.         il.nom_lie,
  76. f.numero_alloc_fam,
  77. i.date2_debut_parent_ins


 
Je voudrais croiser 2 tables, cr_personne et cr_membre_famille.
Mais je les ai déja mises dans un inner join chacune.
Via ceci:  
 

Code :
  1. INNER JOIN
  2.         cr_personne     p
  3.         ON  i.id_per_ins = p.id_per
  4. INNER JOIN
  5. cr_membre_famille m


 
Or, comment faire pour les croiser, sachant que ne peut pas faire INNER JOIN cr_personne p ou bien cr_membre_famille m, car j'ai déja mis ces tables dans un inenr join.
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 18-03-2013 à 16:34:36   

Reply

Marsh Posté le 19-03-2013 à 14:03:07    

Bonjour,
rien ne t'empêche de mettre 2 fois ou plus la même table du moment que tu change l'alias :
 

Code :
  1. INNER JOIN
  2. cr_membre_famille m
  3. ON f.id_fam = m.id_fam
  4. INNER JOIN
  5. cr_membre_famille n
  6. ON f.id_fam = n.id_fam


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed