行をカウントすると(コード#1)-約880行の正しいカウントが得られます。
日付ごとにカウントをグループ化すると、突然約100増加します(コード#2)。
誰かが私の問題を理解するのを手伝ってくれたら幸いです!
前もって感謝します!
テーブル構造は次のとおりです。
tblApplicants:
applicantID (index) | ApplyingForYear (nvarchar)
------------------------------------------------------
1 2013/14
11 2013/14
13 2013/14
12 2013/14
15 2013/14
21 2012/13
tblApplicantSchools_shadow:
id (index) | applicantID | updated (datetime) | statusID (int) | schoolID (int)
-----------------------------------------------------------------------------------------------------
1 11 2012-09-24 00:00:00.000 3 2
1 13 2012-10-24 00:00:00.000 4 2
2 15 2012-11-24 00:00:00.000 3 4
3 13 2012-03-24 00:00:00.000 4 3
4 12 2012-09-24 00:00:00.000 4 1
5 21 2012-11-03 00:00:00.000 5 2
6 11 2012-09-04 00:00:00.000 4 4
コード #1 (正しくカウント):
select count(DISTINCT [tblApplicantSchools_shadow].applicantID) as TotalAppsPerWeek FROM tblApplicants
INNER JOIN tblApplicantSchools_shadow ON tblApplicantS.ApplicantID = tblApplicantSchools_shadow.applicantID
WHERE ApplyingForYear = '2013/14' and [tblApplicantSchools_shadow].statusID = 4
コード #2 (グループ、正しくカウントされない):
select DATEADD(ww,(DATEDIFF(ww,0,[tblApplicantSchools_shadow].updated)),0) AS Datesubmitted ,count(DISTINCT [tblApplicantSchools_shadow].applicantID) as TotalAppsPerWeek FROM tblApplicants
INNER JOIN tblApplicantSchools_shadow ON tblApplicantS.ApplicantID = tblApplicantSchools_shadow.applicantID
WHERE ApplyingForYear = '2013/14' and [tblApplicantSchools_shadow].statusID = 4
group by DATEADD(ww,(DATEDIFF(ww,0,[tblApplicantSchools_shadow].updated)),0)
order by DATEADD(ww,(DATEDIFF(ww,0,[tblApplicantSchools_shadow].updated)),0)
望ましい結果:
Datesubmitted TotalAppsPerWeek
-------------------------------------------------------
2011-11-14 00:00:00.000 1
2012-09-24 00:00:00.000 1
2012-10-08 00:00:00.000 3
2012-10-22 00:00:00.000 2
2012-10-29 00:00:00.000 2
2012-11-05 00:00:00.000 2
2012-11-12 00:00:00.000 5
2012-11-19 00:00:00.000 26
2012-11-26 00:00:00.000 106
2012-12-03 00:00:00.000 353
2012-12-10 00:00:00.000 298
フィドルコード: http://sqlfiddle.com/#!3/3aa61/10