这是我关于stackoverflow的第一个问题,我期待着每个人的反馈和解决方案。
我会将当前的SQL技能放在中间版的低端。
对于大多数人来说很简单:我需要在oracle SQL环境中编写一个查询,它在活动员工离职日期之后返回所有交易。
表格如下:
| Name | dept | departure date |
| John | Sales | 3.12.2014 |
| David | IT | 7.27.2014 |
| Gary | Audit | 12.5.2013 |
交易表
| TransID | Emp Name | Amount | TransDate |
| 1 | John | 25.00 | 3.31.2014 |
| 2 | David | 30.00 | 8.13.204 |
| 3 | Gary | 15.00 | 1.1.2014 |
我正在努力避免使用UNION ALL,因为该表有超过100个员工记录。在研究使用CROSS APPLY时,它似乎适合这种情况。任何想法都表示赞赏。谢谢!
约什
答案 0 :(得分:1)
您可以使用join
:
select t.*
from employees e join
transactions t
on e.emp = t.emp and e.date < t.transdate;
您可以使用apply
来撰写此内容,但我认为join
会使意图更加明确。