select *
from t1 as q
where klartDatum =
(select max(klartdatum)
from t1
where t1.projektid = q.projektid)
Frågan#1
Jag har en tabell (kalla den t1) som ser ut som följer:
[B]ProjektId KlartDatum AktivitetId[/B]
3 2007-09-19 00:00:00.000 4
43 2007-09-05 00:00:00.000 10
43 2007-09-07 00:00:00.000 25
43 2007-09-10 00:00:00.000 44
Nu vill jag få ut en resultatmängd där varje rads ProjektId är unikt och där det senaste datumet hämtas (med gruppering på ProjektId) samt tillhörande AktivitetId för den raden (m.a.p. KlartDatum).
I detta fall skulle resultatmängden vara:
[B]ProjektId KlartDatum AktivitetId[/B]
3 2007-09-19 00:00:00.000 4
43 2007-09-10 00:00:00.000 44
Tabellen t1 är i själva verket inte en fast tabell utan en svarsmängd som jag får ut på annat sätt, kanske går det att modifiera ursprungsfrågan för att få ut det jag önskar. Isåfall ser den ut såhär:
SELECT pakt.ProjektId, pakt.KlartDatum, pakt.AktivitetId
FROM Projekt_Aktiviteter pakt
INNER JOIN Aktiviteter akt ON akt.Id = pakt.AktivitetId
WHERE akt.Aktivitetstyp = 0 AND pakt.KlartDatum <= GetDate()
AND pakt.Deleted IS NULL
GROUP BY pakt.ProjektId
