UweMedlem sedan nov. 2003181 inlägg
Har problem med en fråga där jag försöker få fram ett resultat där endast det senaste värdet visas.
Tabeller
file
-------
fid (int)
counts (int)
mode
-------
fid (int)
mid (int)
datetime (date)
mode (int)
Det jag har försökt med är typ såhär:
SELECT F.fid, mode, max(datetime) as datum, counts
FROM file F, mode M
WHERE F.fid=m.fid AND DateTime BETWEEN '2000-01-01 00:00:00' AND '2006-01-01 00:00:00'
GROUP BY F.fid, mode, counts
När jag gör denna får jag ut flera poster för varje fid, det jag vill ha är endast den som har det senaste datumet. Går det att göra en sån fråga?
TravoniMedlem sedan okt. 20041 538 inlägg
Ett fältnamn som heter datatime tycker jag låter suspekt.
SELECT Top 1 F.fid, mode, max(datetime) as datum, counts
FROM file F, mode M
WHERE F.fid=m.fid AND [DateTime] BETWEEN '2000-01-01 00:00:00' AND '2006-01-01 00:00:00'
GROUP BY F.fid, mode, counts ORDER BY [DateTime]
*Något åt det hållet.
BTW; uppge alltid vilken databas vi talar om eftersom att mySql använder limit istället för top.
UweMedlem sedan nov. 2003181 inlägg
Travoni skrev:
Ett fältnamn som heter datatime tycker jag låter suspekt.
SELECT Top 1 F.fid, mode, max(datetime) as datum, counts
FROM file F, mode M
WHERE F.fid=m.fid AND [DateTime] BETWEEN '2000-01-01 00:00:00' AND '2006-01-01 00:00:00'
GROUP BY F.fid, mode, counts ORDER BY [DateTime]
*Något åt det hållet.
BTW; uppge alltid vilken databas vi talar om eftersom att mySql använder limit istället för top.
Databsen är SQL Server.
Jag var kanske lite otydlig. Det jag vill ha ut är inte bara ett svar, utan ett record per fid.
LarsGMedlem sedan dec. 200012 465 inlägg
SELECT F.fid, mode, datetime as datum, counts
FROM file F, mode M
WHERE F.fid=m.fid
AND DateTime BETWEEN '2000-01-01 00:00:00' AND '2006-01-01 00:00:00'
and datetime in
(select max(datetime)
from mode
where mode.fid = m.fid)
UweMedlem sedan nov. 2003181 inlägg
LarsG skrev:
SELECT F.fid, mode, datetime as datum, counts
FROM file F, mode M
WHERE F.fid=m.fid
AND DateTime BETWEEN '2000-01-01 00:00:00' AND '2006-01-01 00:00:00'
and datetime in
(select max(datetime)
from mode
where mode.fid = m.fid)
Tack, funkar kanon!
Har aldrig sett att det går att använda en del från huvudfrågan i subfrågan som du gör med m.fid, vet du nån bra sida man kan hitta mer information om detta?