我有一個數據庫用於跟蹤物理對象的位置,我們稱之爲小部件。它有一個審計追蹤表,追蹤widget何時放入某個位置,以及何時離開某個位置(以及之後的位置)。SQL查詢將審計線索的輸入/輸出時間轉換爲位置列表
所以在概念上,它看起來像這樣
Widget ID Date Old Location New Location
1 01-Oct-2013 NULL 101
1 03-Oct-2013 101 108
1 08-Oct-2013 108 101
2 01-oct-2013 NULL 101
2 02-Oct-2013 101 103
3 12-oct-2013 NULL 101
我希望能夠查詢列表,它的部件是在開始和結束日期之間的位置101,如十月8日至9日到2013年,這應該是小部件1而不是小部件2或3.
我不知道如何獲取所有這些情況。我可以提取最後移入的小部件列表,以及在開始之前移出的小部件列表,但這也會消除小部件1在離開和返回時的狀態。
我想我需要將它轉換爲一個表格,包含窗口小部件,位置,入口日期和退出日期,但我不知道該怎麼做?
編輯:正如指出的,我的數據是錯誤的,我已經更新,使問題8日至9日(這是第4至第5)。所以Widget 1是該時期101位置中唯一的小部件。
你想知道小部件進來或期末留? – LINQ2Vodka
我想知道在期間 – PaulHurleyuk
期間任何時候小部件是否在位置。因此,您需要找到至少1條記錄,其中新位置是101並且日期在週期內 - 用於每個小部件ID。請在我的答案中檢查更新。 – LINQ2Vodka