首页 > 解决方案 > VBA ADO Excel 驱动程序 SQL 除外/减号运算符

问题描述

我有 2 个表(新数据和旧数据)并且想要查询旧数据中不存在的所有新行。

SELECT * FROM new 
EXCEPT 
SELECT * FROM prev

我想用 VBA ADO 中的 'EXCEPT/MINUS' 运算符(使用 Excel 工作表作为表格)来执行此操作,但是似乎 EXCEPT 不是一个可接受的运算符?

我收到运行时错误

[Microsoft][ODBC Excel Driver] Syntax error in FROM clause.

它只是 ADO ODBC Excel 驱动程序中没有的功能吗?其他查询工作得很好。

提前致谢!

标签: sqlvbaexcelodbc

解决方案


您需要LEFT JOIN在两个表之间执行 a ,然后仅选择NewTable中没有对应条目的行OldTable。为此,您需要确定两个表中的哪些字段相互对应。

SELECT * FROM NewTable 
LEFT JOIN OldTable ON NewTable.Field1 = OldTable.Field1
WHERE OldTable.Field1 IS NULL

推荐阅读