select n.nyhetRubrik,
(select count(*)
from kommentarer
where kommentarNyhetsid = n.nyhetid) +
case when (select count(*)
from kommentarer
where kommentarNyhetsid = n.nyhetid) = 1 then ' Kommentar'
else ' kommentarer' end as kommentarer,
k.kommentarDatum,
k.kommentarInnehåll
from nyheter as n
left joinkommentarer as k on n.nyhetId = k.kommentarNyhetsId
and k.kommentarDatum =
(select max(kommentarDaum)
from kommentarer as kk
where k.kommentarNyhetsId = kk.kommentarNyhetsId)
Frågan#1
Hej
Jag behöver hjälp med en sql-sats som hämtar ut kommentarer till olika nyheter i en lista. Jag har två tabeller, nyheter och kommentarer. Jag skulle vilja lista alla nyheter i en lista med antalet kommentarer och senaste kommentaren till nyheten på detta sätt:
Nyhet Kommentarer Senaste
=================================================================
NYHET1 5 kommentarer 2009-02-09 08:00:00 Kalle skrev "hej, en kommentar"
NYHET2 2 kommentarer 2009-02-09 09:00:00 Kalle skrev "hej , en kommentar till"
NYHET3 10 kommentarer 2009-02-07 09:00:00 Pelle skrev "hej"
Databas: MSSQL
Databasstruktur:
Nyheter
===============
nyhetId
nyhetRubrik
nyhetBild
Kommentarer
===============
kommentarId
kommentarNyhetsId
kommentarDatum
kommentarNamn
kommentarInnehall (text)
Har ni något tips på hur jag ska utforma SQL-satsen?
mvh
Jan