我有两个表在差不多更新完全相同的时间 - 我需要加入的日期时间列。SQL - 如何加入类似的(不是确切的)列
我已经试过这样:
SELECT *
FROM A, B
WHERE ABS(DATEDIFF(second, A.Date_Time, B.Date_Time)) = (
SELECT MIN(ABS(DATEDIFF(second, A.Date_Time, B2.Date_Time)))
FROM B AS B2
)
但它告诉我:
多个列中包含外部引用的被聚合表达式中指定。如果要汇总的表达式包含外部引用,那么该外部引用必须是表达式中引用的唯一列。
我该如何加入这些表格?
你能解释一下这段代码的工作原理吗?我从来没有见过很多这样的构造。 – 2010-05-11 21:36:20
@BlueRaja - 我已经扩展了我的答案以提供更多细节。 – Thomas 2010-05-11 23:14:19
我最终在查询中用'TOP 1 ... ORDER BY Date_Time'取代了'MIN',但是这个答案教会了我一些新的东西,并且帮助我解决了一个相关的问题(找到了一个特定列更改的行尊重上一行,按日期排序)。谢谢! – 2010-05-12 13:42:01