0
레코드에서 권한이 부여 된 사람에게 적어도 모든 레코드 수를 얻으려고합니다. 기본적으로 레코드에는 둘 이상의 사람이 연관 될 수 있습니다. 총 레코드 수, 최소 한 명이 승인 된 총 승인 레코드 수 및 레코드와 연관된 사람이 승인되지 않은 총 NotAuthorized 레코드 수를 반환하고 싶습니다. 한 사람이 기록 당 권한을 부여 받았는지 또는 기록에 대해 3 명의 사람이 권한을 부여 받았는지 여부는 중요하지 않습니다.이 경우 권한있는 카운터에 1을 추가해야합니다.왼쪽 외부 조인이있는 열의 합계
현재 쿼리는 레코드 당 하나씩이 아닌 레코드 당 추가 된 각 사람에 대해 Auth 및 Non auth를 증가시킵니다. Not Auth로 계산해야하는 레코드에 할당 된 사람이없는 경우.
SELECT Count(DISTINCT Record.RecordID) AS TotalRecords,
SUM(CASE WHEN People.PersonLevel = 1 THEN 1 ELSE 0 END) AS Authorized,
SUM(CASE WHEN People.PersonLevel <> 1 THEN 1 ELSE 0 END) AS NotAuthorized
FROM Record
LEFT OUTER JOIN RecordPeople ON Record.RecordID = RecordPeople.RecordID
LEFT OUTER JOIN People ON RecordPeople.PersonID = People.PersonID
... 당신이 부질없이 그것을 얻을 수 있다고 생각하지 않습니다 승인되지 않은 수 내가 공인 된 사람이 아닌 사람을 동일한 레코드에 추가하면 전체 수는 1이 아닌 2로 증가합니다. – Matt
@Matt 죄송합니다. 너무 빨리 읽은 것으로 보입니다. 나는 더 천천히 읽을 것이다! –