【问题标题】:merge two table into a third using INNER JOIN使用 INNER JOIN 将两个表合并为第三个
【发布时间】:2020-11-19 22:39:02
【问题描述】:

我正在使用 MS-Access,试图将两个表合并为第三个:

来自具有以下字段的表“dbHoldings”:

(ID,isin,Code_BB,Name_BB,asset_name,Weighs,DataDiEstrazione)

与表“dbSecurities2”一起:

(ID,isin,fldName,blkName,fldValue)

进入带有字段的表“dbAssetGroup”:

(ID,isin,Code_BB,Name_BB,asset_name,BB_Weighs,fieldName,bulkName,Bulkweight,allocationWeight,DataDiEstrazione)

我收到运行时错误“3131”
这是我的尝试:

strSQL = "INSERT INTO dbAssetGroup(isin, Code_BB, Name_BB, asset_name, BB_Weighs, fieldName, bulkName, fldValue, DataDiEstrazione) " & _                     
"SELECT H.isin, H.Code_BB, H.Name_BB, H.asset_name, H.Weighs, S.fldName, S.blkName, S.fldValue, H.DataDiEstrazione " & _                       
        "FROM " & _                                                 
        "dbHoldings AS H " & _                                               
        "INNER JOIN dbSecurities2 AS S " & _                                           
        "ON H.isin=S.isin) "  
                         
db.Execute strSQL

【问题讨论】:

  • 最后的 ) 匹配吗?
  • 你说的也不对...
  • 你为什么要在 VBA 中构建 SQL 而没有任何 VBA 变量的连接?考虑使用更易读、更易维护和更高效的保存查询,因为 Access 引擎会编译最佳执行计划,尤其是使用 JOIN 来保存查询。另外,您无法保存有语法错误的查询!
  • 谢谢 Parfait 我会尝试使用查询然后......你是什么意思“在 VBA 中构建 SQL 而不连接任何 VBA 变量?”请你再争论一下好吗?
  • 我想 Parfait 想知道你为什么要在 VBA 中构建一个没有动态参数的 SQL 语句。通过将变量连接到构造的 SQL 语句中提供的参数。由于此 SQL 没有变量输入,因此可以是 Access 中的查询对象,Excel VBA 调用查询对象而不是构建 SQL 语句。

标签: sql vba ms-access


【解决方案1】:

试试这个:

strSQL = "INSERT INTO dbAssetGroup(isin, Code_BB, Name_BB, asset_name, BB_Weighs, fieldName, bulkName, fldValue, DataDiEstrazione) " & _                     
"SELECT H.isin, H.Code_BB, H.Name_BB, H.asset_name, H.Weighs, S.fldName, S.blkName, 
S.fldValue, H.DataDiEstrazione " & _                       
        "FROM " & _                                                 
        "dbHoldings AS H " & _                                               
        "INNER JOIN dbSecurities2 AS S " & _                                           
        "ON H.isin=S.isin "  
                     
db.Execute strSQL

【讨论】:

    猜你喜欢
    • 2017-06-21
    • 2012-09-12
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    相关资源
    最近更新 更多