You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于给定3张表编写Oracle SQL按部门查询每位员工薪资的方法

Oracle SQL 按部门维度查询员工薪资实现

表关联逻辑

  • Emp表存储员工基础信息及薪资数据,Works表为员工与部门的关联中间表(支持员工兼职多部门的场景,pct_time为员工在该部门的任职时长占比),Dept表存储部门基础信息
  • 三张表通过Emp.eid = Works.eid、Works.did = Dept.did关联

查询SQL

如果需要全量展示部门对应所有在职员工的薪资数据,可直接用内连接关联三张表:

SELECT
    d.did AS 部门ID,
    d.dname AS 部门名称,
    e.eid AS 员工ID,
    e.ename AS 员工姓名,
    e.salary AS 员工总薪资,
    -- 如果需要计算员工在当前部门的折算薪资,可打开下一行注释
    -- ROUND(e.salary * w.pct_time / 100, 2) AS 部门折算薪资,
    w.pct_time AS 部门任职占比
FROM
    Emp e
INNER JOIN Works w
    ON e.eid = w.eid
INNER JOIN Dept d
    ON w.did = d.did
ORDER BY
    d.did ASC,
    e.salary DESC;

如果需要包含还没有员工的部门,可将Dept表放在左侧,改用左连接关联即可。

内容的提问来源于stack exchange,提问作者shreya patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:24:05