mySQL – 将id传递给嵌套查询

我试图从同一个表中获取两个不同列的总和,按用户分组.问题是,我必须找到的一个总和,需要一些额外的参数.

表格1:

userid, fname, lname

表2:

assigned_to (is = to userid from other table), 
est_hours (est = Estimate hours),
act_hours (act = Actual Hours), 
completed_date 

我只希望来自已标记为已完成的条目的est_hours(通过在completed_date列中包含值.如果completed_date为空,则act_hours将为空)

我的查询的问题是我没有得到act_hours和est_hours之和的正确值.我认为这与嵌套查询不匹配正确的用户ID有关.
查询:

SELECT userid, 
       fname, 
       lname, 
       SUM(act_hours)+(SELECT SUM(est_hours) 
                       from Table2 
                       WHERE completed_date IS NULL) AS total_hours 
FROM TABLE2, 
TABLE1 
WHERE TABLE1.userid = TABLE2.assigned_to 
GROUP BY userid;

我知道我需要以某种方式将OUID查询中的userid传递到内部查询中,以便SUM(est_hours)仅获取该用户的总和.

我一直在圈子里,我的大脑很疼,所以任何帮助都会受到赞赏!

解决方法:

这在SQL Server中有效,在MYSQL中试用,可能有效:

SELECT userid, 
       fname, 
       lname, 
       (SELECT SUM(est_hours)+SUM(act_hours) 
                       from Table2 
                       WHERE completed_date IS NULL and TABLE2.assigned_to=TABLE1.userid) AS total_hours 
FROM 
TABLE1 

OKAY,恢复原来的查询…

SELECT userid, 
       fname, 
       lname, 
       SUM(act_hours)+(SELECT SUM(est_hours) 
                       from Table2 
                       WHERE completed_date IS NULL 
                       AND Table2.assigned_to=Table1.userid) 
       AS total_hours 
FROM TABLE2, 
TABLE1 
WHERE TABLE1.userid = TABLE2.assigned_to 
GROUP BY userid;
上一篇:使用嵌套C类和枚举的利弊?


下一篇:python – 为什么更新一个字典对象影响其他?