J'ai un petit problème sur une requête sql sous oracle. La voici:
Code :
SELECT
a.adr_rue,
a.adr_num,
a.adr_cp,
a.adr_ville,
m.role_per,
m.situation_per,
m.prenom_per,
m.nom_per,
m.email_perso_per,
m.tel_perso_per,
m.tel_portable_per,
m.adr_num_per,
m.adr_rue_per,
m.adr_cp_per,
m.adr_ville_per,
m.profession_per,
p.date_naissance_per,
il.code_lie,
il.nom_lie,
f.numero_alloc_fam,
i.date2_debut_parent_ins,
'#Date début de période ../../....#' date_debut,
'#Date fin de période ../../....#' date_fin,
COUNT(DISTINCT date_rsv) nb_jours
FROM cr_inscription i
INNER JOIN
cr_famille f
ON i.id_fam = f.id_fam
INNER JOIN
cr_personne p
ON i.id_per_ins = p.id_per
INNER JOIN
cr_inscription_lieu il
ON i.id_ins = il.id_ins
INNER JOIN
cr_adresse a
ON f.id_adr = a.id_adr
INNER JOIN
cr_membre_famille m
ON f.id_fam = m.id_fam
INNER JOIN
cr_inscription_presence ip
ON i.id_ins = ip.id_ins
INNER JOIN
cr_famille_contact fc
ON f.id_fam = fc.id_fam
WHERE -- Restrcition sur la période
ip.date_rsv >= to_number(to_char(to_date('#Date début de période ../../....#'),'YYYYMMDD'))
AND ip.date_rsv <= to_number(to_char(to_date('#Date fin de période ../../....#'),'YYYYMMDD'))
AND LOWER(il.code_lie) = lower('#Libellé court du lieu :#')
--Que les présences
AND ip.type_heure_rsv = 'P'
GROUP BY
a.adr_rue,
a.adr_num,
a.adr_cp,
a.adr_ville,
m.role_per,
m.situation_per,
m.prenom_per,
m.nom_per,
m.email_perso_per,
m.tel_perso_per,
m.tel_portable_per,
m.adr_num_per,
m.adr_rue_per,
m.adr_cp_per,
m.adr_ville_per,
m.profession_per,
p.date_naissance_per,
il.code_lie,
il.nom_lie,
f.numero_alloc_fam,
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 :
INNER JOIN
cr_personne p
ON i.id_per_ins = p.id_per
INNER JOIN
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.
Bonjour, rien ne t'empêche de mettre 2 fois ou plus la même table du moment que tu change l'alias :
Code :
INNER JOIN
cr_membre_famille m
ON f.id_fam = m.id_fam
INNER JOIN
cr_membre_famille n
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
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:
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:
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.