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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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
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
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
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
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