Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Besoin Aide Modélisation

3 réponses
Avatar
llopht
Salut à tous,

J'ai une table tblForums très simple :

IdForum
strLibelle

Associée à une table tblMessages :

IdMessage
IdForum
strSujet
dtmDate

Je voudrais lister chaque forum avec :

son Id, son libellé, le nombre de message total et la date du dernier
message ajouté.

Pour les 3 premières infos c'est simple :

SELECT
tblForum.strLibelle,
count(*) as NbMessages
FROM
tblMessages
INNER JOIN tblMessages ON tblMessages.IdForum = tblForum.IdForum
GROUP BY
tblForum.IdForum,
tblForum.strLibelle


Mais j'ai du mal avoir la date du dernier message. Comment je dois
procéder ?


Merci pour votre aide.

llopht

3 réponses

Avatar
Rudi Bruchez
llopht a écrit:

Mais j'ai du mal avoir la date du dernier message. Comment je dois
procéder ?



Bonjour,

SELECT DISTINCT
f.libelle,
MAX(m.dateMessage) OVER (PARTITION BY f.forumId) as DerniereDate,
COUNT(*) OVER (PARTITION BY f.forumId) as NbMessages
FROM dbo.forum f
JOIN dbo.message m ON m.forumId = f.forumId


--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT
http://www.babaluga.com/
http://rudi.developpez.com/
Avatar
llopht
Merci pour la réponse.

Euhh ? OVER, PARTITION c'est du SQL 2005 ?

et sur SQL 2000 y a des façons de faire ??

Rudi Bruchez a écrit :
llopht a écrit:

Mais j'ai du mal avoir la date du dernier message. Comment je dois
procéder ?



Bonjour,

SELECT DISTINCT
f.libelle,
MAX(m.dateMessage) OVER (PARTITION BY f.forumId) as DerniereDate,
COUNT(*) OVER (PARTITION BY f.forumId) as NbMessages
FROM dbo.forum f
JOIN dbo.message m ON m.forumId = f.forumId




Avatar
Rudi Bruchez
llopht a écrit:

et sur SQL 2000 y a des façons de faire ??



C'est une bonne idée de mentionner la version quand vous posez une question
;)

SELECT
f.libelle,
m.maxDate,
m.cnt as NbMessages
FROM dbo.forum f
JOIN (SELECT COUNT(*) as cnt,
MAX(dateMessage) as maxDate,
forumId FROM dbo.message
GROUP BY forumId) m ON f.forumId = m.forumId

--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT
http://www.babaluga.com/
http://rudi.developpez.com/