從數據庫中檢索每個組中的最后記錄-SQLServer 2005/2008我做了一些苦差事,似乎得不到我想要的結果?;旧?,我們在整個公司都有四個不同的管理系統,我正在定期合并來自每個系統的所有數據。我的目標是每小時更新數據到一個中央數據庫。下面是我正在使用的一個示例數據集:COMPUTERNAME | SERIALNUMBER | USERNAME | LASTIP | LASTUPDATE | SOURCE
TEST1 | 1111 | BOB | 1.1.1.1 | 1/17/2011 01:00:00 | MGMT_SYSTEM_1
TEST1 | 1111 | BOB | 1.1.1.1 | 1/18/2011 01:00:00 | MGMT_SYSTEM_2
TEST1 | 1111 | PETER | 1.1.1.11 | 1/19/2011 01:00:00 | MGMT_SYSTEM_3
TEST2 | 2222 | GEORGE | 1.1.1.2 | 1/17/2011 01:00:00 | MGMT_SYSTEM_1
TEST3 | 3333 | TOM | 1.1.1.3 | 1/19/2011 01:00:00 | MGMT_SYSTEM_2
TEST4 | 4444 | MIKE | 1.1.1.4 | 1/17/2011 01:00:00 | MGMT_SYSTEM_1
TEST4 | 4444 | MIKE | 1.1.1.41 | 1/19/2011 01:00:00 | MGMT_SYSTEM_3
TEST5 | 5555 | SUSIE | 1.1.1.5 | 1/19/2011 01:00:00 | MGMT_SYSTEM_1因此,我想查詢這個主表,并且只檢索最新的記錄(基于LASTUPDATE),這樣我就可以獲得關于該系統的最新信息。問題是,每個數據庫中可能都有一個系統,但它們當然永遠不會有相同的確切更新時間。我希望能得到這樣的東西:TEST1 | 1111 | PETER | 1.1.1.11 | 1/19/2011 01:00:00 | MGMT_SYSTEM_3
TEST2 | 2222 | GEORGE | 1.1.1.2 | 1/17/2011 01:00:00 | MGMT_SYSTEM_1
TEST3 | 3333 | TOM | 1.1.1.3 | 1/19/2011 01:00:00 | MGMT_SYSTEM_2
TEST4 | 4444 | MIKE | 1.1.1.41 | 1/19/2011 01:00:00 | MGMT_SYSTEM_3
TEST5 | 5555 | SUSIE | 1.1.1.5 | 1/19/2011 01:00:00 | MGMT_SYSTEM_1我試過使用MAX函數,但是我只能檢索一個列。我不能在子查詢中使用這一點,因為我沒有一個唯一的ID字段,可以為我提供最后更新的記錄。其中一個系統是MySQL數據庫,MySQL中的MAX函數實際上按照我需要的方式工作,每個組只返回一條記錄,但它在SQLServer中不起作用。我認為我需要使用MAX和左加入,但我的嘗試到目前為止都失敗了。你的幫助將不勝感激。在過去的3-4個小時里,我一直在絞盡腦汁想得到一個有用的查詢。此主表位于SQLServer 2005服務器上。謝謝!
從數據庫中檢索每個組中的最后記錄-SQLServer 2005/2008
叮當貓咪
2019-07-20 14:49:08