繁体   English   中英

这个sql语句出了什么问题?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM