Antal poster per datum

Databaser & SQL

1 svar · 341 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.

246 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)