单个查询中的几个条件计数意外地工作

问题描述:

SELECT HR.name, (SELECT COUNT(*) WHERE Ord.status > 6), (SELECT COUNT(*) WHERE Ord.status < 6) 
     FROM Ord 
      JOIN Manager AS Mng ON Mng.person_id = Ord.manager_id 
      JOIN Person AS HR ON HR.id = Mng.hr_id 
     GROUP BY HR.id 

人力资源经理已经找到他。单个查询中的几个条件计数意外地工作

"CREATE TABLE Manager (person_id INTEGER PRIMARY KEY NOT NULL, hr_id INTEGER)" 

我想统计每个HR有多少订单由他的经理做出status > 6而女巫没有。

查询我写了upper并没有返回正确的结果。 (但返回一些)。

你的描述是无法理解的。

您的查询缺少FROM条款和相关的子查询,以及>相反会<=。 你可能想要这样的东西:

SELECT HR.name, 
     (SELECT COUNT(*) 
     FROM Ord 
     WHERE Ord.manager_id IN (SELECT Mng.person_id 
           FROM Manager as Mng 
           WHERE Mng.hr_id = HR.id) 
      AND Ord.status > 6), 
     (SELECT COUNT(*) 
     FROM Ord 
     WHERE Ord.manager_id IN (SELECT Mng.person_id 
           FROM Manager as Mng 
           WHERE Mng.hr_id = HR.id) 
      AND Ord.status <= 6), 
FROM Person AS HR 
GROUP BY HR.id