2011-12-23 65 views
0

如何在列中找到最新值?只有1列更改值,它不是主標識符。如何在列中找到最新值?

(select (t_Order_Assignment.dte_assignment) 
from t_order_assignment WITH (NOLOCK) 
inner join t_order_detail on t_Order_Assignment.order_detail_id = t_order_detail.Order_Detail_ID)as 'dte_assignment' 

這也設置在一個更大的查詢中,所以order by子句將不起作用。我試過@@identity, scope, top 1,最後(不起作用)。我只需要上面列出的特定列中的最新值。

謝謝

+0

按最新值,你在談論日期時間字段?如果是這樣,你真的問你如何找到具有最大日期時間值的記錄? – 2011-12-23 17:57:20

+0

dte_assignment 2011-12-19 04:29:44.010但它被保存爲一個字符串,最新我想放入最近的條目。主ID不會改變。 – Daren 2011-12-23 17:58:52

+0

另外:**什麼數據庫**和哪個版本??看起來像SQL Server - 是嗎?只是「SQL」沒有幫助 - 這只是幾乎所有數據庫系統都使用的結構化查詢語言 - 只是「SQL」不是可識別的產品或供應商..... – 2011-12-23 18:00:41

回答

0

所以你說這不起作用?

(select top 1 t_Order_Assignment.dte_assignment 
from t_order_assignment WITH (NOLOCK) 
inner join t_order_detail on t_Order_Assignment.order_detail_id =  t_order_detail.Order_Detail_ID 
order by CAST(t_Order_Assignment.dte_assignment AS DateTime) desc 
)as 'dte_assignment' 

- 只是看到了有關存儲日期作爲字符串...不是一個很好的舉措,但也許你的手的評論,所以在量級上鑄造。這沒有錯誤處理,所以你可能想看看...

+0

沒有效果,因爲它抓住了最新日期而不是最新條目。例如,我手動更改了日期以回滾2天,並且它仍然抓取了在此之前2分鐘放置在系統中的日期。 – Daren 2011-12-23 18:02:41

+0

也許我必須拋出這個方法---我做了回滾測試目的 – Daren 2011-12-23 18:03:13

+0

好吧,我明白了,那麼你可以通過ID列排序,如果你有一個自動增量列,如整數ID值。已在您的原始文章中提出 – Ric 2011-12-23 18:05:13

1

爲什麼不只是在表t_order_assignment的索引或關鍵字段上使用max()函數?