SELECT TT.DEPTNAME, --大队
COUNT(TT.DEPTID), --大队下单位数
SUM(TT.DEVEICESTATE), --状态为1的单位数
COUNT(TT.DEPTID) - SUM(TT.DEVEICESTATE) --状态为0的单位数 = 大队下单位数-状态为1的单位数
FROM (SELECT AA.DEPTNAME, AA1.DEPTID, MIN(BB.DEVEICESTATE) DEVEICESTATE --存在0的情况则取0,相当于取最小值
FROM A AA
JOIN A AA1
ON AA.DEPTID = AA1.PARENTID
JOIN B BB
ON AA1.DEPTID = BB.DEPTID
WHERE AA.PARENTID = '00010001' --大队的条件
GROUP BY AA.DEPTNAME, AA1.DEPTID) TT
GROUP BY TT.DEPTNAME只是提供思路,具体情况具体分析
COUNT(TT.DEPTID), --大队下单位数
SUM(TT.DEVEICESTATE), --状态为1的单位数
COUNT(TT.DEPTID) - SUM(TT.DEVEICESTATE) --状态为0的单位数 = 大队下单位数-状态为1的单位数
FROM (SELECT AA.DEPTNAME, AA1.DEPTID, MIN(BB.DEVEICESTATE) DEVEICESTATE --存在0的情况则取0,相当于取最小值
FROM A AA
JOIN A AA1
ON AA.DEPTID = AA1.PARENTID
JOIN B BB
ON AA1.DEPTID = BB.DEPTID
WHERE AA.PARENTID = '00010001' --大队的条件
GROUP BY AA.DEPTNAME, AA1.DEPTID) TT
GROUP BY TT.DEPTNAME只是提供思路,具体情况具体分析
对应给出的例子,想得到的结果又是什么?可否列出来