[英]what's wrong with this sql statement?
在访问我这样做:
insert into accounts_changes
(select *
from accounts
where [Agency Code]
in (select * from tableimport))
它说它不喜欢这个INSERT语句
更新:
sSql = "insert into accounts_changes (select * from Accounts where [Agency Code] in (select [Agency Code] from tableimport))"
我做了什么标记说它仍然给我相同的错误信息
syntax error in INSERT INTO statement
当我这样做:
ssql = "select [Agency Code] from tableimport"
CurrentDb.Execute ssql
它说不能执行SELECT QUERY
这是错的:
select *
from accounts
where [Agency Code] in (select * from tableimport)
您只能在子查询中为IN子句选择一列。 你想要这样的东西:
select *
from accounts
where [Agency Code] in (select [Agency Code] from tableimport)
您需要检查表tableimport
列的确切名称。 以上只是我最好的猜测。
您可能需要从tableimport而不是*中选择代理商代码。
您应该在tableimport
内部选择上指定要搜索的列。
此外,您可以声明要插入的表的字段和返回的字段:
INSERT INTO TABLE_EXAMPLE (A, B) SELECT AA, BB FROM TABLE_ORIGIN
这部分可能误导了你:
ssql = "select [AgencyCode] from tableimport"
CurrentDb.Execute ssql
执行需要“操作”查询(INSERT,DELETE,UPDATE或SELECT INTO)。 当您给Execute一个普通(行返回)SELECT查询时,您将始终收到错误#3065,“无法执行选择查询”。 这并不意味着您的SELECT语句有任何问题。 通过将SELECT语句粘贴到新查询的SQL视图中来测试它。
您展示了[AgencyCode]的两个变体...一个与代理和代码之间没有空格。 这是什么?
我认为你原来的INSERT语句有一对额外的括号,不需要。 试试这种方式:
insert into accounts_changes
select *
from Accounts
where [Agency Code] in (
select [Agency Code] from tableimport)
如果仍然失败,请验证您具有相同数量的字段,并在Accounts和accounts_changes中使用相同的字段名称和数据类型。 如果两个表中的字段不完全匹配,请在@pcent显示时明确列出字段。
这工作:
insert into accounts_changes select * from Accounts where [Agency Code] in (select [Agency Code] from tableimport)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.