我面临获得部分最新(最新)的记录,我唯一的方法是使用“最大日期”方法。
这是一个基本架构(和示例数据):
ldDate ldTime ldPart id
2010-10-26 00:00:00.000 52867 90-R6600-4100 186
2010-11-01 00:00:00.000 24634 90-R6600-4100 187
2010-11-24 00:00:00.000 58785 90-R6600-4100 194
2010-11-24 00:00:00.000 58771 90-R6600-4100 195
2010-11-17 00:00:00.000 29588 90-R6600-4100 201
2010-11-08 00:00:00.000 29196 90-R6600-4100 282
2010-11-08 00:00:00.000 29640 90-R6600-4100 290
2010-10-19 00:00:00.000 58695 90-R6600-4100 350
2010-09-22 00:00:00.000 32742 BH4354-F0 338
2010-09-22 00:00:00.000 32504 BH4354-F0 340
2010-11-17 00:00:00.000 31157 BH4354-F0 206
2010-11-08 00:00:00.000 27601 BH4354-F0 218
2010-11-08 00:00:00.000 27865 BH4354-F0 21
2010-09-22 00:00:00.000 23264 BR6950-F0 70
2010-09-22 00:00:00.000 23270 BR6950-F0 77
2010-09-24 00:00:00.000 27781 BR6950-F0 97
2010-11-24 00:00:00.000 57735 BR6950-F0 196
我上面的内容是 ldDate 没有时间,而且 ldTime 但不是正确的HH:MM:SS表示,它是午夜以来的秒数,所以第一行是:
2010-10-26 00:00:00.000 52867
或者如果我转换时间:
52 867秒= 14.6852778小时
〜2010-10-26 14:68:52
有没有一种干净的方法可以在我的SQL查询中组合两列?我想做一个简单的max(ldCombinedDate)和ldPart(部件号)分组。
id,几乎是无用的,所以忽略它,它现在是否有插入记录的顺序,没有别的,可以用于嵌套查询呢?注意:输入顺序并不意味着最新日期......
...谢谢
答案 0 :(得分:4)
表达式
DATEADD(second, ldTime, ldDate)
将返回合并日期。所以,我想你想要这样的东西:
SELECT ldPart, MAX(DATEADD(second, ldTime, ldDate)) AS MaxCombinedDate
FROM yourtable
GROUP BY ldPart