SELECT a.ClassName, b.TeacherName, COUNT(c.Class_ID)
from dbo.Class a
inner join dbo.Teacher b on a.Teacher_ID = b.Teacher_ID
left outer join dbo.ClassRegistration c on a.Class_ID = c.Class_ID
group by a.ClassName, b.TeacherName
현재 위의 SQL 스크립트가 있습니다. 괜찮아요, 아이디어는 ClassName, TeacherName 및 ClassRegistration 테이블에 나타나는이 클래스의 횟수를 표시하는 것입니다. 이제 다음 부분은 내가 조금 붙어있는 부분입니다. ClassRegistration 테이블에는 'HasPaid'라는 열이 있습니다. 얼마나 많은 "ClassRegistration 's"가 지불되었는지를 나타내는 2nd Count 열을 추가해야합니다. HasPaid 유형 BIT
의 경우는 같은 방법으로 두 번째 카운트를 단순화 할 수있다,기본 SQL - 두 번째 Count() 열이 필요합니다.
SELECT
a.ClassName,
b.TeacherName,
COUNT(c.Class_ID),
COUNT(CASE c.HasPaid WHEN 1 THEN c.Class_ID ELSE NULL END)
from dbo.Class a
inner join dbo.Teacher b
on a.Teacher_ID = b.Teacher_ID
left outer join dbo.ClassRegistration c
on a.Class_ID = c.Class_ID
group by a.ClassName, b.TeacherName
을 :
완료! 매력처럼 작동합니다! – SkonJeet
답변이 업데이트되었습니다. –
Ahhh brilliant! 이미 귀하의 게시물에서 많은 것을 배웠습니다. 감사합니다 다시 올렉! – SkonJeet