【发布时间】:2014-07-27 01:46:30
【问题描述】:
我有一个数据库表,其结构如下:
CREATE table match (ID1 int, ID2 int, CreatedDate, ConnectDisconnect)
我正在尝试编写一条 SQL 语句,该语句将返回按 id1 和 id2 分组的最新重新匹配记录。例如,请看下面的数据:
1,2,'2014-06-05', C
1,3,'2014-06-05', C
1,4,'2014-06-05', C
N1,N2,'2014-06-05',D
请看下面的SQL语句:
select max(CreatedDate), ID1,ID2 FROM match
group by ID1,ID2
这将显示最近对 ID1 和 ID2 做出的决定。问题是匹配的记录可以是任何一种方式。例如:
1,2,'2014-06-04', C
2,1,'2014-06-05', D
上面的数据显示,记录 1 和 2 在 04/06/2014 连接,在 05/06/2014 断开连接。我上面的查询将返回两行,但我只希望它返回一行,即最近的一行(在上面的例子中是 05/06/14 的数据)。
【问题讨论】:
-
好吧,如果你只有一个日期列(不是日期时间),那么你怎么知道哪一行是最近的?
标签: sql sql-server