VBA ADO Excel驱动程序SQL Except / Minus运算符

时间:2018-05-30 19:40:09

标签: sql excel vba excel-vba odbc

我有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驱动程序中没有的功能吗? 其他查询工作正常。

提前致谢!

1 个答案:

答案 0 :(得分:2)

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

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