2012-07-12 58 views
-1

我有表中data_clockin字段。我想只找到data_chkin中的最後一個條目,其差異從當前數據最小。例如今天,我有四條目,但我想只有一個入口,其時間是最小的,如果他們是在不同的日期4項。我想只有一個入口,其區別是從當前日期如何獲得一個條目,其差異從當前日期和時間低

+1

你能表現出一定的樣本數據和預期的效果?你的單詞問題非常混亂,我相信我不是唯一一個懷疑下面的查詢能否真正解決你的問題的人。 – 2012-07-12 17:48:36

回答

0
SELECT * 
FROM Table 
WHERE data_clockin = (SELECT MAX(data_clockin) FROM Table) 

根據data_clockin值,該查詢最小或相同可能會返回一行或多行

+0

如果你真的只想要一行,我會小心這個。例如,您是否嘗試過使用「AdventureWorks.Sales.SalesOrderHeader」?我得到39行。 – 2012-07-12 17:54:23

+0

@AaronBertrand +1爲你的答案,因爲我真的不知道OP想要達到什麼。我再次重讀這個問題幾次,它確實說只有*一個條目*應該被檢索。之前我沒有注意到。 – 2012-07-12 20:08:15

1
SELECT TOP (1) cols 
FROM dbo.unspecified_table_name 
ORDER BY date_clockin DESC; 

如果您需要爲多行(例如每組一行)做到這一點,那麼也許:

;WITH x AS 
(
    SELECT cols, rn = ROW_NUMBER() OVER (PARTITION BY some_grouping_key_column 
    ORDER BY date_clockin DESC) 
    FROM dbo.unspecified_table_name 
) 
SELECT cols FROM x WHERE rn = 1; 
相關問題