Select 更新查询多个字段、多个条件

Select 更新查询多个字段、多个条件,select,sql-update,ms-access-2010,sql-insert,Select,Sql Update,Ms Access 2010,Sql Insert,这是一篇MS Access相关文章 如何将INSERT INTO语句更改为UPDATE语句 DoCmd.RunSQL "INSERT INTO A_tblStagingTablesChecksHEADERS (Header, Header2) " _ & "SELECT DISTINCT(SELECT F1 FROM tblStagingIssuerNames_ReverseRepos " _ &am

这是一篇MS Access相关文章

如何将INSERT INTO语句更改为UPDATE语句

            DoCmd.RunSQL "INSERT INTO A_tblStagingTablesChecksHEADERS (Header, Header2) " _
                & "SELECT DISTINCT(SELECT F1 FROM tblStagingIssuerNames_ReverseRepos " _
                & "WHERE F1 = 'ISSUER CODE') as F1data, " _
                & "(SELECT F51 FROM tblStagingIssuerNames_ReverseRepos " _
                & "WHERE F51 = 'INSTRUMENT REFERENCE (BOE)') as F2data " _
                & "FROM tblStagingIssuerNames_ReverseRepos;"
我尝试了以下方法但未成功:

    DoCmd.RunSQL "UPDATE A_tblStagingTablesChecksHEADERS, tblStagingIssuerNames_ReverseRepos " _
                & "SELECT DISTINCT(SELECT F1 FROM tblStagingIssuerNames_ReverseRepos " _
                & "WHERE F1 = 'ISSUER CODE') as F1data, " _
                & "SELECT DISTINCT(SELECT F51 FROM tblStagingIssuerNames_ReverseRepos " _
                & "WHERE F51 = 'INSTRUMENT REFERENCE (BOE)') as F2data " _
                & "FROM tblStagingIssuerNames_ReverseRepos," _
                & "SET A_tblStagingTablesChecksHEADERS.Header = F1data, " _
                & "SET A_tblStagingTablesChecksHEADERS.Header2 = F2data;"
对于带别名和不带别名的两个语句,我都会得到运行时错误“3075”:

查询表达式“SELECT DISTINCTSELECT F1 FROM tblStagingIssuerNames_ReverseRepos WHERE F1=”颁发者代码中存在语法错误


您使用的Update语句语法无效。试试这个:

DoCmd.RunSQL "UPDATE A_tblStagingTablesChecksHEADERS " _
            & "SET Header = (SELECT DISTINCT F1 FROM tblStagingIssuerNames_ReverseRepos " _
            & "WHERE F1 = 'ISSUER CODE'), " _
            & "Header2 = (SELECT DISTINCT F51 FROM tblStagingIssuerNames_ReverseRepos " _
            & "WHERE F51 = 'INSTRUMENT REFERENCE (BOE)')";

@罗诺:谢谢你的回复。我认为别名是强制性的。我试着在脚本的方括号中添加它们,但仍然收到语法错误消息。UPDATE语句中不需要别名。我可以看到,如果任何一个内部select语句返回多条记录,您将如何得到错误消息,但我需要知道您得到的错误消息。@Rono,用于这篇文章的最初SELECT语句确实检索了多条记录,实际上是底层表所持有的记录数,这就是我添加DISTINCT的原因。使用DISTINCT,我得到一条记录。我将在我的帖子中添加对错误的描述。@ProtoVB,我应该更仔细地研究它。我更新了我的答案,以便语法正确。该语句现在运行。。。但是检索0个数据!我不明白。如果我只运行SELECT语句,那么我会为每个字段获取一个值!!怎么了?