希望您能在我转圈时为我提供帮助!

我需要计算没有一定资格的人数。

我没有尝试过,但这会返回除我希望计数的资格以外的所有其他资格。我想具体计算不具备该资格的人数,即表格中没有行条目。

SELECT COUNT(tmp.personnelID) AS Number,
        tmp.QualificationID

FROM(SELECT pa.PersonnelID,
            pq.QualificationID

FROM dbo.PersonnelActive pa
LEFT JOIN dbo.PersonnelQualifications pq ON pq.PersonnelID = pa.PersonnelID
WHERE NOT pq.QualificationID = 125) tmp

GROUP BY tmp.QualificationID


你们能给我或向我指出正确方向的任何帮助将不胜感激。

最佳答案

您应该为不在资格ID = 125的人员ID中的人员ID计数

SELECT COUNT(pa.personnelID) AS Num,
        pq.QualificationID

FROM PersonnelActive pa
INNER JOIN dbo.PersonnelQualifications pq ON pq.PersonnelID = pa.PersonnelID
where pa.PersonnelID NOT IN ( SELECT pa.PersonnelID

FROM dbo.PersonnelActive pa
INNER JOIN dbo.PersonnelQualifications pq ON pq.PersonnelID = pa.PersonnelID
WHERE  pq.QualificationID = 125
)

GROUP BY pq.QualificationID

关于mysql - 不具备资格的SQL Count人数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49856058/

10-11 10:37