我试图运行如下所示的查询,以便将所有数据从RemoteServer复制到LocalServer,即在最近一次时间戳记录的日期与执行查询的确切时间之间。
INSERT INTO [LocalServer].[database1].[dbo].[Table1]
SELECT * FROM [RemoteServer].[database1].[dbo].[Table1]
WHERE TimeCol BETWEEN MAX(TimeCol) and CURRENT_TIMESTAMP但是,运行此查询将导致以下错误:
除非聚集在WHERE子句或select列表中的子查询中,而且正在聚合的列是外部引用,否则聚合不能出现在WHERE子句中。
这条错误信息在说什么?我想要的是什么查询来完成我想要的?
发布于 2015-07-07 18:03:02
您不能在WHERE中使用MAX(),因为它是一个聚合函数。用有()代替。这是你想要的吗?
INSERT INTO [LocalServer].[database1].[dbo].[Table1]
SELECT * FROM [RemoteServer].[database1].[dbo].[Table1]
WHERE TimeCol BETWEEN (SELECT MAX(TimeCol) FROM
[LocalServer].[database1].[dbo].[Table1]) and CURRENT_TIMESTAMP根据马丁·史密斯的评论编辑
https://stackoverflow.com/questions/31275934
复制相似问题