1

我面临获取零件的最新(最新)记录,而我唯一的方法是使用“最大日期”方法来做到这一点。

这是一个基本架构(和示例数据):

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,几乎没用,所以忽略它,它现在就在那里插入记录的顺序,没有别的,可以用于嵌套查询吗?注意:输入顺序并不意味着最晚日期...

谢谢...

4

1 回答 1

4

表达方式

DATEADD(second, ldTime, ldDate)

将返回合并的日期。所以,我猜你想要这样的东西:

SELECT ldPart, MAX(DATEADD(second, ldTime, ldDate)) AS MaxCombinedDate
  FROM yourtable
 GROUP BY ldPart
于 2010-12-01T18:28:13.330 回答