- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试执行以下过程,我有两个不同的访问数据库,并且我正在将一些 sql 查询编程到 Excel Vba 中以操作这些数据库的数据。我使用 ADOX Connection 与这些数据库进行了链接,您可以看到下面的脚本。我的问题与查询本身有关,从一个表中我有很多数据,我正在从另一个表中查找这些数据,这些数据位于另一个数据库中,但是如果查询没有找到关系,它必须通知所有从第一个表中获取数据,并使用其他表作为补充信息,如果没有匹配,则结果将为空。
为了做这样的事情,我使用 LEFT OUTER JOIN
在所有 table 上,但它不适合。当它返回消息时
"Syntax Error on JOIN operation"
Public Function getUMEByIdent()
Dim i As Long
Dim j As Integer
Dim nData() As Variant
Dim adox_table1 As ADOX.Table
Dim adox_table2 As ADOX.Table
Dim adox_table3 As ADOX.Table
Dim fatorConv As Double
With connection
.ConectDB ("compDraw.mdb")
Set adox_catalog = New ADOX.Catalog
Set adox_catalog.ActiveConnection = connection.conn
Set adox_table1 = New ADOX.Table
With adox_table1
Set .ParentCatalog = adox_catalog
.Name = "lkdTbl1"
.Properties("Jet OLEDB:Link Datasource") = ThisWorkbook.Path & "\assets\configs.mdb"
.Properties("Jet OLEDB:Link Provider String") = "MS Access"
.Properties("Jet OLEDB:Remote Table Name") = "mditems"
.Properties("Jet OLEDB:Create Link") = True
End With
Set adox_table2 = New ADOX.Table
With adox_table2
Set .ParentCatalog = adox_catalog
.Name = "lkdTbl2"
.Properties("Jet OLEDB:Link Datasource") = ThisWorkbook.Path & "\assets\configs.mdb"
.Properties("Jet OLEDB:Link Provider String") = "MS Access"
.Properties("Jet OLEDB:Remote Table Name") = "umestatistics"
.Properties("Jet OLEDB:Create Link") = True
End With
Set adox_table3 = New ADOX.Table
With adox_table3
Set .ParentCatalog = adox_catalog
.Name = "lkdTbl3"
.Properties("Jet OLEDB:Link Datasource") = ThisWorkbook.Path & "\assets\configs.mdb"
.Properties("Jet OLEDB:Link Provider String") = "MS Access"
.Properties("Jet OLEDB:Remote Table Name") = "convume"
.Properties("Jet OLEDB:Create Link") = True
End With
Set .rs = .conn.Execute( _
"SELECT bom.ident_mp, lkdTbl1.ncm, lkdTbl1.umc, lkdTbl2.ume, lkdTbl3.fator_conv FROM" & _
" ((bom LEFT OUTER JOIN lkdTbl1 ON lkdTbl1.ident = bom.ident_mp) " & _
" LEFT OUTER JOIN tkdTbl2 ON lkdTb1.ncm = lkdTbl2.ncm)" & _
" LEFT OUTER JOIN lkdTbl3 ON lkdTbl1.umc = lkdTbl3.umc AND lkdTbl2.ume = lkdTbl3.ume" & _
" GROUP BY bom.ident_mp, lkdTbl1.ncm, lkdTbl1.umc, lkdTbl2.ume, lkdTbl3.fator_conv", , adCmdText)
Do While Not .rs.EOF
If IsNull(.rs.Fields("ident_mp").Value) = False Then
ReDim Preserve nData(i)
nData(i) = Array(.rs.Fields("ident_mp").Value, .rs.Fields("ncm").Value, .rs.Fields("umc").Value, .rs.Fields("ume").Value, .rs.Fields("fator_conv").Value)
i = i + 1
End If
.rs.MoveNext
Loop
.rs.Close
adox_catalog.Tables.Delete "lkdTbl1"
adox_catalog.Tables.Delete "lkdTbl2"
adox_catalog.Tables.Delete "lkdTbl3"
.FechaDb
End With
End Function
最佳答案
Access 的查询解析器无法处理某些连接。您通常可以通过创建子查询来解决它。
SELECT temp.ident_mp
, temp.ncm
, temp.umc
, temp.ume
, lkdTbl3.fator_conv
FROM
(SELECT *
FROM bom
LEFT OUTER JOIN lkdTbl1 ON
lkdTbl1.ident = bom.ident_mp
LEFT OUTER JOIN tkdTbl2 ON
lkdTb1.ncm = lkdTbl2.ncm) temp
LEFT OUTER JOIN lkdTbl3 ON
temp.umc = lkdTbl3.umc
AND temp.ume = lkdTbl3.ume
GROUP BY temp.ident_mp
, temp.ncm
, temp.umc
, temp.ume
, lkdTbl3.fator_conv
这会将前两个左连接放入名为
temp
的子查询中。所以最后一个左连接只连接两个表。我无法测试它,因为我没有您的设置,但我在 Northwind.mdb 中做了类似的事情并且它有效。
关于excel - 使用 LEFT OUTER JOIN 的 SQL 查询语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65498555/
class Outer { class Inner { } } public class Demo { public static void main(
不确定我是否明白这一点,但我从 pyLint 收到验证错误说: Redefining name 'a' from outer scope (line 443) (redefined-outer-nam
我是 SQL 新手,最近开始在我的代码中实现联接,我希望检索的数据可以使用以下 SQL 语句来完成。但是,如您所知,SQLite3 不支持 RIGHT OUTER 和 FULL OUTER JOIN。
怀疑但不确定:是 FROM 中表格的简单列表-clause 根据定义是完全连接? SELECT * FROM table1, table2 我们在参数不相等的情况下连接表的情况是否是完全外连接的实现?
我想知道 numpy 中是否有一个功能与 np.outer 类似,但使用二维数组和向量作为输入参数。结果应该是一个 3 维数组。 例如,如果我有一个矩阵 M 和一个向量 v,我想将原始矩阵 M 堆叠
以下代码在 MSVC 上编译: #include class Bob { int a; friend class Outer; }; class Outer {
Spark SQL 文档指定 join()支持以下连接类型: Must be one of: inner, cross, outer, full, full_outer, left, left_out
谁能帮我解决以下问题.. 这里我们有1.左外连接2.两个右外连接 如何结合左右 O.J 并创建与上面相同的效果, 我需要重写相同的查询,这是因为我正在将旧的 ms SQL2009 转换为 ms SQL
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
使用 ANSI 语法的 Informix 查询性能是否有差异: SELECT .. LEFT OUTER JOIN some_table ON () LEFT OUTER JOIN some_
根据clang , gcc 和 vs2013,函数 Outer::f 是 not 类 Outer::Inner 的 friend 。 struct Outer { void f() {}
换句话说,对于嵌套/多个 JOIN SQL 语句,是否应该始终首先使用 INNER JOIN(要么将其放在顶部行或通过使用括号首先 INNER JOIN 两个表)并确保它在任何 OUTER JOIN
我们有以下查询。使用 LEFT OUTER 连接需要 9 秒才能执行。将 LEFT OUTER 更改为 LEFT INNER 可将执行时间减少到 2 秒,并且返回相同行数。由于无论连接类型如何,都正在
为什么在实例化通用外部类(连同内部类)时使用菱形运算符会在代码段 2 中产生错误,而代码段 1 却完全没问题? 我知道稀有类型是被禁止的,但我的情况不是稀有类型——在稀有类型中,外部和内部都是通用的,
我有 4 个表,如下所示。 表:类 ClassID | ClassSTD -------------------------------- 1 | STD-1 2
是否有关于“外部 =>”功能的文档?它看起来像一个带有推断类型的自类型注释。然而我有一种感觉,我错了。 如果是这样,是否只是表达对 super 的访问的不同方式? ? trait A extends
我有 2 个表 users 和 orders,我想获取 users 和他的订单数 SELECT `users`.*, `orders`.*,count(*) FROM `users` LEFT JOI
我有一个非常古老的 informix 过程,我想在我的新 PostgreSQL 数据库中使用它。我是 Postgres 的新手,我觉得连接很不一样。 这是我的旧 Informix 代码的一部分: CR
我非常擅长 SQL 语句,希望能得到一点帮助。我发现我需要对其中一些表使用 OUTER 联接,但 MySQL 没有该功能。 SELECT validclick.Campaign
对,这有点令人困惑,我不确定通过 sql 是否可行。 我的第一个表叫做成员,我目前有这个 user:ID type: firstname: lastname: 这是表中的数据 members tabl
我是一名优秀的程序员,十分优秀!