nuth
Messages postés13Date d'inscriptionmardi 23 novembre 2004StatutMembreDernière intervention10 août 2009
-
4 mars 2009 à 15:38
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
5 mars 2009 à 11:49
Hello, hello !
J'ai un petit soucis sur une requête, donc je vous expose le problème. Je dispose de deux tables Contact et Entretien. Un contact peut avoir aucun ou plusieurs entretiens.
Structure :
Table Contact ( id_contact )
Table Entretien ( id_entretien, id_fk_contact, date_entretien )
date_entretien peut avoir la valeur NULL
Je souhaiterai avoir la liste de tous les contacts classé par date maximum d'entretien.
Puisque un contact peut ne pas avoir d'entretien je suis obligé d'effectuer une jointure externe.
SELECT *
FROM CONTACT a LEFT OUTER JOIN ENTRETIEN b
ON a.id_contact = b.id_fk_contact
Avec ceci j'obtiens tous les contacts mais avec tous les entretiens. Et là je bloque auriez vous une idée pour garder les date d'entretien maximum sachant qu'elles peuvent avoir la valeur null.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 5 mars 2009 à 11:49
Salut,
Plus simple et plus performant
select personne.id,nom,max(date) from personne
left join rdv on rdv.id = personne.id
group by personne.id,nom
order by personne.id
Jeu d'essai :
=========
/*
insert into rdv values(1,null)
insert into rdv values(2,null)
insert into rdv values(3,null)
insert into rdv values(2,'2008-12-23')
insert into rdv values(3,'2008-12-23')
insert into rdv values(2,'2008-12-23')
insert into rdv values(4,'2008-12-23')
insert into rdv values(4,'2009-12-23')
insert into personne values(1,'toto')
insert into personne values(2,'titi')
insert into personne values(3,'tata')
insert into personne values(4,'tutu')
insert into personne values(5,'tyty')
*/