webForumDet fria alternativet
Logga in / Bli medlem

Antal poster per datum

Databaser & SQL

1 svar · 311 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Trådstart#1

Jag har tabell med ungefär följande design:

intId, INT IDENTITY
datDateClick, DATETIME
intId_foreignKey, INT

I tabellen sätts en rad in varje gång en användare klickar på en länk. Jag behöver beräkna antal rader per dag från och med ett visst datum till och med ett annat datum. Ett krav är att även datum som saknar rader inkluderas i resultatet, typ:

input parameters:
startdate: 2006-03-20
enddate: 2006-04-20

resultat:
'2006-03-20', 35
'2006-03-21', 0
'2006-03-22', 27
...
'2006-04-20', 41

Jag tänker mig något i stil med denna SQL-fråga som LarsG skrev en gång i tiden.

Medlem sedan nov. 20017 144 inlägg
#2

Du har inte sagt msdb men med mssql kanske du skulle kunna göra en temptabell:

Create procedure getDates(
	@startdate datetime, 
	@enddate datetime
)
AS
DECLARE @i int,@a int
set @i=0

CREATE TABLE #Bar (dte datetime,co int)
while datediff(day,@startdate+@i,@enddate) > -1
Begin
	Set @a = (select count(*) from tabell where datDateClick = @startdate+@i)
	Insert into #Bar(dte,co) values(dateadd(day,@i,@startdate),@a)
	SET @i = @i + 1
End
SELECT dte as Datum, co as Klick From #Bar
DROP TABLE #Bar

Kanske är helt ute å cyklar men det funkar i alla fall hyfsat.

252 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)