Besoin Aide Modélisation

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Rudi Bruchez
Le #11868801
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/
llopht
Le #11868761
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




Rudi Bruchez
Le #11868711
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/
Publicité
Poster une réponse
Anonyme