我有以下查询...
查询#1
{
"uri":"https://platform.ringcentral.com/restapi/v1.0/dictionary/permission?page=1&perPage=100",
"records":[
{
"uri":"https://platform.ringcentral.com/restapi/v1.0/dictionary/permission/Meetings",
"id":"Meetings",
"displayName":"Meetings App Access",
"assignable":true,
"readOnly":false,
"siteCompatible":"Independent",
"category":{
"uri":"https://platform.ringcentral.com/restapi/v1.0/dictionary/permission-category/Meetings",
"id":"Meetings"
},
"includedPermissions":[
]
}
]
}
查询#2
SELECT aa.DocNum, b.QualityClass
FROM dbo_TransferHistory AS aa LEFT JOIN PCQualityClass AS bb ON aa.DocNum = bb.DocumentNum
WHERE (((aa.DocNum)=[Enter Doc Num]));
dbo_TransferHistory是我通过ODBC连接器访问的表。 PCQualityClass和PCBldgCond是基于另一个ODBC表的两个查询。这两个查询都只有主查询中引用的两个字段。
DocNum和DocumentNum是相同的类型(“短文本”,长度为12),尽管我想使名称相同,但不能。 运行查询时,将弹出一个输入框,并将[输入文档编号]替换为我想要数据的文档编号。
查询是在Access中使用“创建查询”工具创建的。
问题在于,虽然查询1可以运行,但查询2会导致错误“无效操作”。
更改为内部联接将允许查询#2起作用,但会导致问题,因为有时两个子查询中的一个或两个都没有数据,但是我仍然需要主表中的数据。
请帮助,为什么不起作用,我不知所措。这是Access 2013中的错误,不允许在同一查询中出现两个Left Joins还是我缺少的其他内容?
答案 0 :(得分:0)
SQL看起来应该可以工作,所以问题可能出在基本查询和两个左联接的组合上。
我对ODBC表和多个外部联接的Access查询的一般经验是:即使使它们起作用,它们通常也会表现很差。
所以我的建议是:在SQL Server上将整个内容重新创建为视图,并链接该视图。然后,您的Access查询变得很简单
SELECT * FROM dbo_ViewTransferHistory
WHERE DocNum=[Enter Doc Num]
答案 1 :(得分:0)
好,所以这让绝对的@@ $$%感到沮丧。语法是正确的,我在网上看到的所有内容都说它应该工作。出于纯粹的沮丧和好奇,我将ODBC表作为本地表导入到Access中,并更改了查询中的表引用以使用本地表。 OMG,现在可以使用了。相同的数据,相同的结构,不同的表类型,并且可以正常工作。因此,看起来问题出在尝试使用ODBC进行多个联接。不幸的是,每次查询运行时,我无法从ODBC创建本地表。继续研究这个问题,看看是否可以找到其他解决方法。还有其他想法吗?
基本上,使用ODBC数据源时,Access将不允许多个外部联接。我将其标记为已回答,并在新帖子中重新表述该问题。 谢谢。