(这是访问权限) 我有一张桌子上有我工人工资的所有历史记录。每条记录都有一个开始日期,员工开始接收该工资,以及我们开始报告该工资的开始日期。为什么?,合法的东西..(有时起始日期早于我们开始报告它的日期)
-------------------------------------------------------
|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,我不知道如何启动查询......谢谢!
答案 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;