gpt4 book ai didi

sql - Access 查询返回空字段,具体取决于表的链接方式

转载 作者:行者123 更新时间:2023-12-02 04:19:16 25 4
gpt4 key购买 nike

我有一个用于报表的Access MDB,它已链接了SQL Server 2005中的表 View 。我构建了一个查询,该查询从PO表中检索信息,并根据来自另一个表的信息对行项目进行分类。我可以肯定地说,直到大约一个月前,当我们按照主要应用程序(用于创建数据)的要求从服务器上的兼容模式80切换到90时,查询才可以使用。我不能百分百地说出这句话,但这是过去90天内所做的唯一重大更改。我们注意到突然没有数据显示在查询中,使报告看起来很奇怪。

这是失败查询的副本:

SELECT dbo_porel.jobnum, dbo_joboper.opcode, dbo_porel.jobseqtype,
dbo_opmaster.shortchar01,
dbo_porel.ponum, dbo_porel.poline, dbo_podetail.unitcost

FROM ((dbo_porel
LEFT JOIN dbo_joboper ON (dbo_porel.assemblyseq = dbo_joboper.assemblyseq)
AND (dbo_porel.jobseq = dbo_joboper.oprseq)
AND (dbo_porel.jobnum = dbo_joboper.jobnum))
LEFT JOIN dbo_opmaster ON dbo_joboper.opcode = dbo_opmaster.opcode)
LEFT JOIN dbo_podetail ON (dbo_porel.poline = dbo_podetail.poline)
AND (dbo_porel.ponum = dbo_podetail.ponum)

WHERE (dbo_porel.jobnum="367000003")

它返回以下内容:
jobnum    opcode  jobseqtype  shortchar01  ponum  poline  unitcost
367000003 S 6624 2 15

该查询通常应该已经显示了操作码和shortchar01的值。如果删除链接表dbo_podetail,它将正确显示这些字段的数据(尽管我显然不再具有单位成本了)。起初我以为可能是数据问题,但是我发现如果嵌套查询然后链接表,它就可以正常工作。

例如,以下代码可以完美运行:
SELECT qryTest.*, dbo_podetail.unitcost

FROM (

SELECT dbo_porel.jobnum, dbo_joboper.opcode, dbo_porel.jobseqtype,
dbo_opmaster.shortchar01, dbo_porel.ponum, dbo_porel.poline

FROM (dbo_porel
LEFT JOIN dbo_joboper ON (dbo_porel.jobnum=dbo_joboper.jobnum)
AND (dbo_porel.jobseq=dbo_joboper.oprseq)
AND (dbo_porel.assemblyseq=dbo_joboper.assemblyseq))
LEFT JOIN dbo_opmaster ON dbo_joboper.opcode=dbo_opmaster.opcode

WHERE (dbo_porel.jobnum="367000003")

) As qryTest
LEFT JOIN dbo_podetail ON (qryTest.poline = dbo_podetail.poline)
AND (qryTest.ponum = dbo_podetail.ponum)

我不知道为什么它在后一种情况下有效,而在第一种情况下不起作用。更糟糕的是,它似乎对于某些记录而不是对其他记录而言是间歇性的(关于它所做的和不起作用的记录是一致的)。

你们有专家有什么想法吗?

最佳答案

您肯定需要对Access中的多个左/右联接使用子查询。
我认为这是Jet优化器的局限性,如果仅链接左/右联接,就会感到困惑。

您可以see that this is a recurrent problem经常浮出水面。

关于sql - Access 查询返回空字段,具体取决于表的链接方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/615609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com