【问题标题】:How to find sum of salary all of employees under each manager with out including manager salary in the sum?如何在不包括经理工资的情况下找到每个经理下所有员工的工资总和?
【发布时间】:2021-05-29 22:04:39
【问题描述】:

在不包括经理工资的情况下,如何找到每个经理下所有员工的工资总和?

员工表格式:

【问题讨论】:

  • Sandrine 的经理是 Frank,他是分析师,而不是经理。弗兰克的经理是乔纳斯,他的工作实际上是“经理”。所以,有两个问题:(1)您是否需要将 Sandrine 的工资包括在为乔纳斯报告的总工资中(即使她只是间接向他报告,而不是直接向他报告)? (2) 您是否需要计算 Frank 的总数,他不是“经理”,但实际上是 Sandrine 的经理?
  • 另外:MySQL 和 Oracle 是不同的产品(即使不小心属于同一家公司)。请澄清 - 您是否使用 both 数据库?如果没有,请编辑标签,只保留那些特别适用于您的标签。
  • @sai vikas 我删除了不一致的标签,请只添加相关的dbms

标签: sql database join


【解决方案1】:

如果这意味着您不想包括在其上级经理手下担任经理的人的薪水,那么:

select manager_id , sum(salary)
from employees
where emp_id not in (select manager_id from employee)
group by manager_id

如果你必须使用join:

select manager_id , sum(salary)
from employees emp
left join employees mgr
 on mgr.emp_id = emp.managerid
where mgr.emp_id is not null
group by manager_id

【讨论】:

  • 我们可以用“JOIN”写同样的查询吗
  • 为什么?这是执行此查询的最有效方法
  • 谢谢,但#eshirvana 但我很好奇在这种情况下使用连接
  • 您好@mathguy 在我的问题中,查询应导致按经理 ID 显示员工组的工资总和,其中员工 ID 应位于经理 ID 列中。更明确地说,他应该是任何人的经理,他/她应该纯粹是员工,而不是桌子上任何人的经理。
  • @eshirvana,我确实接受你的答案,无论是较短的还是下一个,我都非常感谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多