Merci pour vos réponse, on approche du resultat meme si c'est pas encore ca.
En prenant la technique de "7gyY9w1ZY6ySRgPeaefZ", la requete adaptée est :
1 2 3 4 5 6 7 8 9
| with sr as (
SELECT Message.IDSource as usager1, Message.IDDest as usager2, message.DateWrite as madate, COUNT(*) as compte from dbo.Message group by Message.IDSource, Message.IDDest, message.DateWrite
union all
SELECT Message.IDDest as usager1, Message.IDSource as usager2, message.DateWrite as madate, COUNT(*)as compte from dbo.Message group by Message.IDSource, Message.IDDest, message.DateWrite
)
select madate, usager2, count(*) as NBMessages from sr
where usager1 = 'pierre'
group by usager2 , madate
order by madate desc |
Mais cela me répond toutes les lignes de correspondant avec le meme correspondant, le resultat des correspondances de pierre est :
date/usager2/Nbmessages
-----------------------------
17 jan / emilie / 1
16 jan / emilie / 1
15 jan / emilie / 1
5 jan / marcel / 1
1 jan / francis / 1
En, fait j'aimerai avoir :
17 jan / emilie / 3
5 jan / marcel / 1
1 jan / francis / 1
En prenant le modele de SLE la requete est :
1 2 3 4 5
| SELECT
case when Message.IDSource = 'pierre' then Message.IDDest else Message.IDSource end as correspondant, message.DateWrite, COUNT(*) from dbo.Message
where Message.IDSource = 'pierre' or Message.IDDest='pierre'
group by case when Message.IDSource='pierre' then Message.IDDest else Message.IDSource end, Message.DateWrite
order by Message.DateWrite desc |
Le résultat est :
Correspondant / Date / NBmess
------------------------------
emilie / 17 jan / 1
emilie / 16 jan / 1
emilie / 15 jan / 1
marcel / 5 jan / 1
francis / 2 jan / 1
Et donc je voudrais avoir :
emilie / 17 jan / 3
marcel / 5 jan / 1
francis / 2 jan / 1
Merci pour vos nouveaux conseils.
Partager