Ms SQL Server。表中的歷史'分片'
我有一張表,用於監視學生的學校申請狀態。 學生可以申請多個學校,每個學校都可以接受/拒絕/等待學生的名單。
表tblApplicantSchools
會是這個樣子:
ApplicantID | SchoolID | StatusID
獨特的申請者可以出現在這裏申請多所學校 - 但每個學校的申請之一的地位。
我也有一個歷史性的表tblApplicantSchools_shadow
,它會影響tblApplicantSchools
上所做的任何更改。它與上面的內容相同,只是它還節省了更改的時間,以及它是否是原始表上的插入/更新/刪除。 因此,在他shadow
表中,可能有多個學生,有多個狀態的多個學校(當他們在整個過程中移動時)。
我想要做的是將shadow
表格分到一定的日期,並將每個申請的單個最近的statusID
帶到每個申請人的每個學校。這有意義嗎? 例如:
ApplicantID | SchoolID | StatusID | ChangeDate
-----------------------------------------------------------------------
11 2 3 22/1/2015
11 2 4 30/1/2015
11 3 4 25/1/2015
11 3 6 29/1/2015
所以,我希望看到的是僅列#2和上面第4,被視爲他們的申請#11到每個學校的最近期更新。
有人能給我一個關於如何做到這一點的指針嗎?我的設置稍微複雜一些,但我認爲這個例子簡化了它,這樣問題就很清楚了。
感謝
這肯定看起來像是我想學習,謝謝。看起來很強大。現在太多太多了,我們正在尋找另一種更加不錯的解決方案。 – kneidels