我很難在這裏看到一個相對簡單的查詢。只有在不存在更新的記錄時才選擇記錄
基本上我有一個合同表爲我的用戶。每個用戶有多個合同。當合同到期時,它不會被標記爲這樣,如果用戶與我們續約,將來會創建一個新的活動合約記錄並帶有新的結束日期,我們會按此結束。
我想要做的是創建一個查詢,選擇合同已過期但尚未與我們續約的所有用戶。
爲簡單起見,這裏是我的合同表的簡單版本。
+------+----------+--------+
|UserID|ContractID|End Date|
+------+----------+--------+
|1 |1 |1/1/2014|
+------+----------+--------+
|2 |2 |1/1/2015|
+------+----------+--------+
|3 |3 |1/1/2014|
+------+----------+--------+
|1 |4 |1/1/2015|
+------+----------+--------+
所以你可以看到用戶1有一個有效和無效合同,用戶2只活躍,用戶3只無效。我需要查詢才能找到用戶3,因爲他還沒有續約。
我在這裏奉勸唯一的事情就是GETDATE()會爲每一行,這將放慢改革的步伐大大以至引起的副作用進行評估。最好將GetDate()的值存儲在一個變量中,並將EndDate與該變量進行比較。 –
@BrianDriscoll - 奇怪的是,沒有。 GETDATE()被視爲[運行時常量函數](http://blogs.msdn.com/b/conor_cunningham_msft/archive/2010/04/23/conor-vs-runtime-constant-functions.aspx) 。它可能仍然更清楚,並且在使用適當的多個語句的情況下,將當前日期/時間緩存在變量中。 – HABO
@HABO今天我學到了...... –