Sql 考虑使用交叉应用,但不确定
这是我关于stackoverflow的第一个问题,我期待着大家的反馈和解决方案 我会把我目前的SQL技能放在中级的低端 对于大多数人来说,这是一个简单的问题:我需要在oracle SQL环境中编写一个查询,返回活动员工离职日期之后的所有事务 表如下所示:Sql 考虑使用交叉应用,但不确定,sql,oracle,transactions,reporting,business-intelligence,Sql,Oracle,Transactions,Reporting,Business Intelligence,这是我关于stackoverflow的第一个问题,我期待着大家的反馈和解决方案 我会把我目前的SQL技能放在中级的低端 对于大多数人来说,这是一个简单的问题:我需要在oracle SQL环境中编写一个查询,返回活动员工离职日期之后的所有事务 表如下所示: | Name | dept | departure date | | John | Sales | 3.12.2014 | | David | IT | 7.27.2014 | | Gary | Audit
| 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 |
我试图避免工会,因为该表有超过100条员工记录。在研究交叉应用的使用时,它似乎适合这种情况。欢迎提出任何意见。谢谢
Josh您可以使用
加入:
select t.*
from employees e join
transactions t
on e.emp = t.emp and e.date < t.transdate;
选择t*
来自雇员e join
交易记录
e.emp=t.emp,e.date
您可以使用apply
编写此代码,但我认为join
会使意图更加明确。您的事务表是什么样子的?“我正在尝试避免联合,因为该表有100多条员工记录。”-这意味着解决方案的选择取决于其表中记录的数量。指出一个事实并不是“贬低”。@isim表格看起来像:Trans ID/Emp Name/Amount/Trans Date 1/John Doe/25.00/3.31.2014 2/David Smith/30.00/8.13.204 3/Gary Allen/15.00/1.1.2014 4/John Doe/80.00/2.28.2014 5/Eric Davis/25.00/5.21.2014 6/Steve Sanders/73.00/10.31.2014 7/Joe Clark/50.00/01.16.2014结果应为:交易ID/Emp名称/金额/交易日期1/John Doe/25.00/3.31.2014 2/David Smith/30.00/8.13.204 3/Gary Allen/15.00/1.1。2014@MitchWheat我认为从OPs的帖子中可以清楚地看到,他们认为解决方案取决于规模。我确信你的口才足够好,可以省去那种居高临下的语气。特别是,我认为你可以取消“你认为有很多吗?”并表达了你的观点。对不起,这是一个斑点。还没有学会网站标记,雪人可以通过看这个来判断这个方法是否有效。谢谢你的帮助,林诺夫先生。你挽救了我对stackoverflow的第一印象。英雄联盟