在我当前的项目中,我拥有分配给它们的设施的用户组。我需要的是展现用户组的名称,这是部门,这是描述和数量的分配给它的设施。我有些已经能够做到这一点,如下图所示:在计数中包含0不适用于额外的where子句
当前“成功”的结果
,我现在面临的问题是,当我添加一个where子句指出已被删除的设施应包括不包括。下面是产生上述结果我的SQL语句:
语句来实现上述
SELECT ug.usergroupname UserGroupName, dpt.deptname Department, ug.usergroupdesc UserGroupDesc, count(ugf.usergroupid) NumOFFacilities
FROM tblusergroup ug
LEFT JOIN tblusergroupfacilities ugf
ON ug.usergroupid = ugf.usergroupid
LEFT JOIN tbldepartment dpt
ON dpt.deptcode = ug.deptcode
LEFT JOIN tblfacility f
ON ugf.facilityid = f.facilityid
WHERE ug.isdeleted = 0
GROUP BY ug.usergroupname, dpt.deptname, ug.usergroupdesc
然而结果是,当我添加的where子句不包含已删除的设施,它产生一个整体的其他结果:
编辑声明
SELECT ug.usergroupname UserGroupName, dpt.deptname Department, ug.usergroupdesc UserGroupDesc, count(ugf.usergroupid) NumOFFacilities
FROM tblusergroup ug
LEFT JOIN tblusergroupfacilities ugf
ON ug.usergroupid = ugf.usergroupid
LEFT JOIN tbldepartment dpt
ON dpt.deptcode = ug.deptcode
LEFT JOIN tblfacility f
ON ugf.facilityid = f.facilityid
WHERE ug.isdeleted = 0
AND f.isdeleted = 0 //<-------added clause
GROUP BY ug.usergroupname, dpt.deptname, ug.usergroupdesc
更改结果
有什么办法都实现扣除上述删除设施的结果?任何帮助真的会被赞赏。
添加条件外一个基本原则联接:关于外部表的条件 - >添加到,条件对内部表 - >添加到ON:'LEFT JOIN tblfacility˚F ON ugf.facilityid = f.facilityid AND f.isdeleted = 0' – dnoeth
**变更结果**是电流输出,正确?你能否确认,并加上所需的结果? – KtX2SkD
@dnoeth我试过了,但它给了我第一个输出。 –