SQL Server에는 1 대 다수 관계 (관련 자료, 참조)의 두 개의 관련 테이블이 있습니다.SQL Server보기 관련 테이블에서 count = "True"를 가져옵니다.
Applicant 테이블의 모든 데이터를 검색하고 "Complete"열이 True 인 곳의 참조 행이 몇 개인 지 알려주는 뷰에 다른 열을 추가합니다. 하위 쿼리를 사용하여이 같은
SQL Server에는 1 대 다수 관계 (관련 자료, 참조)의 두 개의 관련 테이블이 있습니다.SQL Server보기 관련 테이블에서 count = "True"를 가져옵니다.
Applicant 테이블의 모든 데이터를 검색하고 "Complete"열이 True 인 곳의 참조 행이 몇 개인 지 알려주는 뷰에 다른 열을 추가합니다. 하위 쿼리를 사용하여이 같은
뭔가 :
select applicantfield1, applicantfield2,
(select count(*) from
reference where reference.applicantkey = applicant.applicantkey
and reference.complete = 1) AS referencecount
from applicant
전체 필드는 신청자 테이블 (안 참조 테이블)에 있지 않으면. 그렇다면 다음과 같이 표현할 수 있습니다.
select applicantfield1, applicantfield2,
(select count(*) from
reference where
reference.applicantkey = applicant.applicantkey) AS referencecount
from applicant
where applicant.complete = 1
다음과 같은 메시지가 표시됩니다. 테이블에 가입해야합니다. 이는 신청자가 참된 참조가없는 곳을 처리 할 것입니다.
SELECT A.*, isnull(r.comptotal,0) as CompleteTotal
FROM Applicant as a Left Join
(SELECT ApplicantId, Count(Complete) as comptotal
FROM Reference Where Complete=1 Group by ApplicantID) as r
on a.ApplicantId = r.applicantId
확실히 내 구성한 열 이름과 외래 키 필드를 실제 필드 이름으로 바꾸어야합니다. – RThomas
첫 번째 답변은 내가 찾고있는 답변입니다. 방금 테스트했는데 제대로 작동하는 것 같습니다. – user1304444