的我有一个表是这样的:SQL Server查询检索最新记录一组给定的ID
ModuleID TimeStamp Value TotalPerDay
1 8/5/2012 9:00 PM 0.25 0.25
2 8/5/2012 9:00 PM 0.15 0.15
3 8/5/2012 9:00 PM 0 0
4 8/5/2012 9:00 PM 1.25 1.25
1 8/5/2012 10:00 PM 0.05 0.30
3 8/5/2012 10:00 PM 0.89 0.89
4 8/5/2012 10:00 PM 0.14 1.39
4 8/5/2012 11:00 PM 0.70 2.09
4 8/5/2012 12:00 PM 0.43 2.52
...
而且我有15000个模块更新此表每隔一小时。另外,在午夜,TotalPerDay
值得到重置。
我正在努力处理一个查询,该查询应该为给定的一组ModuleID
提供最新的TotalPerDay
值。
我尝试使用上ModuleID
一个GROUP BY
条款。但是,如何在不使用聚合函数的情况下获取最新的TotalPerDay
值?
顺便说一句,我使用的SQL Server提前2008
谢谢!
这正是我所需要的。谢谢。 – usp 2012-08-07 23:59:03
嘿,我都尝试你的查询,它似乎像第二个作品比第一快!这是为什么? – usp 2012-08-08 16:40:29
那么,它们是完全不同的;第一查询应该返回每个模块每天最后一个条目,由CTE(如一个子查询),并用加入选择的。第二个查询应返回每个模块每天所有总计的总和,并且只包含一个带有聚合的select语句。基本上,第一个查询更复杂,应该花费大约两倍的时间。 – 2012-08-08 18:58:47