从同一个表中连接两个记录

时间:2016-09-21 00:43:21

标签: ms-access

(这是访问权限) 我有一张桌子上有我工人工资的所有历史记录。每条记录都有一个开始日期,员工开始接收该工资,以及我们开始报告该工资的开始日期。为什么?,合法的东西..(有时起始日期早于我们开始报告它的日期)

-------------------------------------------------------
|WorkerID|StartingDate|ReportingDate|Salary|
-------------------------------------------------------
|   001  | 01/01/2015 |  01/01/2015 |10,000|
|   001  | 01/01/2016 |  01/02/2016 |15,000|
-------------------------------------------------------

因此,如果我想在2016年1月1日检查工人001,应该是15,000美元,但我必须报告10,000美元。所以现在我需要一个查询,告诉我应该支付的工资和我应该报告的工资,就像这样:

------------------------------------------------------------
|WorkerID|StartingDate|ReportingDate|PaySalary|ReportSalary|
------------------------------------------------------------
|   001  | 01/01/2016 |  01/02/2016 |  15,000 |   10,000   |
------------------------------------------------------------

该表名为Wages_History,我不知道如何启动查询......谢谢!

1 个答案:

答案 0 :(得分:1)

如果我理解正确,这是一个简单的where过滤器:

select *
from wages_history
where reporting_date > starting_date;

如果是这种情况,那么我建议您花一些精力来学习SQL。 。 。有很好的书籍,教程和课程。

编辑:

如果您还想要上一个薪水:

select wh.*,
       (select top 1 wh2.salary
        from wages_history wh2
        where wh2.worker_id = wh.worker_id and
              wh2.starting_date <  wh.starting_date
        order by wh2.starting_date desc
       ) as prev_salary
from wages_history wh
where reporting_date > starting_date;