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.
Jesper TMedlem sedan nov. 20017 144 inlägg 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.