webForumDet fria alternativet

count med unika poster mellan två datum

Databaser & SQL

2 svar · 249 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Får inte till denna! :(

	DECLARE @StartDate datetime, @CurrentDate datetime, @DayCount int;
	SET @StartDate = '2006-09-20';
	SET @CurrentDate = getdate();
	SET @DayCount = DATEDIFF(d, @StartDate, @CurrentDate)

	SELECT COUNT(r.ReportDate)
	FROM Reports r
	WHERE r.ReportDate BETWEEN @StartDate And getDate()
	GROUP BY r.ReportDate

Jag vill få ut hur många poster det finns mellan de två datumen, unikt.
Dvs. Om det finns en rad skapad igår (ReportDate) och en post skapad idag så vill jag få ut 2.
Finns det bara en post från igår och ingen idag så blir svaret 1.
Det kan också finnas t.ex 5 st. poster från igår och kanske 4 idag, då ska svaret fortfarande bli 2.
Alltså alla poster på en och samma dag räknas ihop till 1.

Medlem sedan dec. 200012 464 inlägg
#2

Det är väl det vanliga, att reportDate innehåller både datum och tid. Du kan använda convert för att enbart få ett datum. Du behöver även använda distinct i din count.

Medlem sedan juni 20003 076 inlägg
#3

tror jag fixat det! :)

			SELECT COUNT(*) 
			FROM 
			(	
				SELECT r.ReportDate
				FROM Reports r
				WHERE r.ReportDate BETWEEN @StartDate And @CurrentDate
				GROUP BY r.ReportDate
			) TT
136 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)