2011-12-23 64 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()函数?