2013-04-16 14 views
1

我想要計算每年teacherids的唯一出現次數。我相信結果不是唯一的。使用MSSQL計算唯一出現的IDid

我查詢

SELECT DISTINCT count (tblTeachers.TeacherID) AS uniqueTeacherCount, tblSchoolYears.SchoolYear 

FROM tblTeachers INNER JOIN tblTeacher_Building 
. 
. 

GROUP BY tblSchoolYears.SchoolYear 
ORDER BY tblSchoolYears.SchoolYear DESC; 

enter image description here

我也曾嘗試

SELECT COUNT(DISTINCT tblTeachers.TeacherID) AS uniqueTeacherCount, tblSchoolYears.SchoolYear 

FROM tblTeachers INNER JOIN tblTeacher_Building 
. 
. 

GROUP BY tblSchoolYears.SchoolYear 
ORDER BY tblSchoolYears.SchoolYear DESC; 

我缺少什麼結果(即指望TeacherID的副本)?

謝謝

+1

這是'sql-server'還是'ms-access'? – Kermit

+1

如果你想要一個Access查詢,你不能'使用Count(DISTINCT ...)' – HansUp

+0

ms-access ....... – jamesTheProgrammer

回答

3
Select Count(TeacherID) AS uniqueTeacherCount,SchoolYear 
from 
(
SELECT DISTINCT tblTeachers.TeacherID, tblSchoolYears.SchoolYear 
FROM tblTeachers INNER JOIN tblTeacher_Building 
. 
. 
) hlp 
GROUP BY SchoolYear 
ORDER BY SchoolYear DESC; 
+1

非常感謝... – jamesTheProgrammer

1

你靠近。我認爲這是你要找的東西:

SELECT COUNT(*) 
FROM 
(
SELECT DISTINCT count (tblTeachers.TeacherID) AS uniqueTeacherCount, tblSchoolYears.SchoolYear ... 
)