Har ett enkelt(?) problem... Hejsan,Välja ut antal poster per datum
Tabell: tblLog
***************
LogID : räknare (heltal)
LogUserID : heltal (relaterat till tabell tblUser)
LogTime : Tidpunkt (yyyy-mm-dd hh:mm:ss)
Jag vill nu med en SQL-sats välja ut antal LogUserID per varje datum(yyyy-mm-dd)...
Har funderat enligt följande...
SELECT LogTime,Count(*) AS Antal FROM tblLog GROUP BY LogTime;
Men hur "skalar jag bort" tiden från datumet redan i select:en?
...jag antar att det är i GROUP BY-villkoret jag borde göra det..(?)Sv: Välja ut antal poster per datum
Det finns flera sätt att lösa detta på, men jag ger dig två förslag.
Förslag 1:
<code>
CREATE FUNCTION GETDateNoTime(@DateWithTime AS DATETIME)
RETURNS DATETIME
AS
BEGIN
RETURN CAST(ROUND(CAST(@DateWithTime AS FLOAT), 0,1) AS DATETIME)
END
GO
SELECT
dbo.GETDateNoTime(LogTime) AS LogDate,
Count(*) AS Antal
FROM tblLog
GROUP BY dbo.GETDateNoTime(LogTime)
GO
</code>
Förslag 2:
<code>
SELECT
CONVERT(char, LogTime,101) AS LogDate,
Count(*) AS Antal
FROM tblLog
GROUP BY CONVERT(char, LogTime,101)
GO
</code>
Hänvisar även till referensen för CONVERT:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ca-co_2f3o.asp
Det finns säkert fler sätt att göra på, och det kanske någon annan kan berätta på?
Ses