gpt4 book ai didi

sql - 如何查询另一个查询结果?

转载 作者:行者123 更新时间:2023-12-04 03:12:52 25 4
gpt4 key购买 nike

我有一个问题,因为我不太擅长查询。

我有一个查询包含两个选择查询的联合:​​

   SELECT em.emp_code,  
em.emp_name,
COALESCE(SUM(pe.hours_allotted),0) AS hours,
pe.dated
FROM employee_master em
LEFT JOIN project_employee pe ON (pe.Emp_code = em.emp_code)
WHERE (dated >= '2011-03-14'
AND dated < '2011-03-20' )
OR dated IS NULL
GROUP BY em.emp_code
UNION
(SELECT em.emp_code,
em.emp_name,
'0' AS hours,
pe.dated
FROM employee_master em
LEFT JOIN project_employee pe ON (pe.Emp_code = em.emp_code)
WHERE (dated >= '2011-03-14'
AND dated < '2011-03-20' )
OR dated IS NOT NULL
GROUP BY em.Emp_code)
ORDER BY emp_name;

现在结果集返回例如:

ecode  ename    hours 
----------------------
201 Alak basu 10
201 alak basu 0

第一个结果来自联合的第一个 select 语句,其中 hours = 10hours = 0 来自 union 的第二个 select 语句。

我想要的是:

ecode     ename       hours 
----------------------------
201 alak basu 10

就像在这种情况下,每个 ecode 应该只有一个结果。如何将它分组,就像按 ecode 分组汇总小时数,以便它只给我一个如上所述的结果?

最佳答案

你总是可以这样做:

select emp_code, min(emp_name) as emp_name, sum(hours)
from (
<your original query here>
) as e
group by emp_code
order by emp_name;

关于sql - 如何查询另一个查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5348179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com