【发布时间】:2014-06-26 05:14:24
【问题描述】:
我有一个这样的查询:
SELECT SUM(tab1.amount) amount
FROM tab1
JOIN tab2
ON tab1.lp_id = tab2.id
JOIN tab3
ON tab3.employee_id = tab2.employee_id
WHERE tab1.officeid =123
AND tab3.space <> 2
这很好用。 现在我想为它添加更多过滤器。基本上我有一个表tab4,其中有列employee_id、effective_date、salary。即对于每个员工,我们维护工资更改的日期(即每个员工的多个记录)。我只想选择那些最近薪水大于10000的员工。我该怎么写? 基本上我想要这样的东西:
SELECT SUM(tab1.amount) amount
FROM tab1
JOIN tab2
ON tab1.lp_id = tab2.id
JOIN tab3
ON tab3.employee_id = tab2.employee_id
WHERE tab1.officeid =123
AND tab3.space <> 2
AND (
select salary
from (
select *
from tab4
where tab4.employee_id = tab2.employee_id
order by effective_d desc
)
where rownum = 1
) > 10000
我正在尝试添加最后两行 - 但由于无法使用 tab2.employee_id 而出现错误。
我该怎么写?
【问题讨论】:
标签: sql