我有 2 個表(在螢屏截圖表中)。一張桌子員工也有工人和經理,另一個(部門)與部門。我需要撰寫一個查詢,回傳員工姓名、他們的直接經理的姓名、他們的部門名稱和他們的工資以及銷售傭金 (COMM)。螢屏截圖中的空單元格意味著 NULL。另外,對于一些工人來說,他們沒有經理!
我嘗試使用 Union all 進行查詢,但這是一個問題,因為行不同!。那我應該怎么寫呢?
select e.ename, d.name, sum (case when e.comm<>null then 1 else 0 case when e.sal<>null then 1 else 0 end)as sum_total
from emp as e
left join dept as d on e.deptno=d.deptno
where e.job<>"Manager"
Union ALL
select e.ename
from emp as e
left join dept as d on e.deptno=d.deptno
where e.job="Manager"
先感謝您
uj5u.com熱心網友回復:
您可以自行加入emp表格以獲取經理姓名
select e.ename,
d.name,
coalesce(e.sal, 0) coalesce(e.comm, 0) as salary,
m.ename as manager
from emp e
join dept as d on e.deptno = d.deptno
left join emp m on m.empno = e.mgr
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/337165.html
下一篇:Oracle進行一對一連接
