2016-09-21 55 views
0

(這是在訪問中) 我有一張桌子,裏面有工人工資的所有歷史記錄。每條記錄都有員工開始接受該工資的開始日期和我們開始報告此工資的開始日期。爲什麼呢?法律的東西..(有時起始日期比日期之前我們開始報告吧)加入來自同一張表的兩條記錄

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

所以,如果我想打一個支票工人001對2016年1月1日應該是15,000美元,但我必須報告10,000美元。所以現在我需要一個查詢,告訴我的工資我要和我應該報告的工資,就像這樣:

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

的表稱爲Wages_History和我不有如何啓動一個線索查詢...謝謝!

回答

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; 
+0

是的,但你怎麼把工資都對查詢的一個記錄? – Lio