gpt4 book ai didi

sql - 最后两个连接导致重复的行

转载 作者:行者123 更新时间:2023-12-04 22:24:07 25 4
gpt4 key购买 nike

好的,所以我有一个查询返回的行数比预期的重复数据多。这是我的查询:

SELECT AP.RECEIPTNUMBER
,AP.FOLDERRSN
,ABS(AP.PAYMENTAMOUNT)
,ABS(AP.PAYMENTAMOUNT - AP.AMOUNTAPPLIED)
,TO_CHAR(AP.PAYMENTDATE,'MM/DD/YYYY')
,F.REFERENCEFILE
,F.FOLDERTYPE
,VS.SUBDESC
,P.NAMEFIRST||' '||P.NAMELAST
,P.ORGANIZATIONNAME
,VAF.FEEDESC
,VAF.GLACCOUNTNUMBER

FROM ACCOUNTPAYMENT AP

INNER JOIN FOLDER F ON AP.FOLDERRSN = F.FOLDERRSN
INNER JOIN VALIDSUB VS ON F.SUBCODE = VS.SUBCODE
INNER JOIN FOLDERPEOPLE FP ON FP.FOLDERRSN = F.FOLDERRSN
INNER JOIN PEOPLE P ON FP.PEOPLERSN = P.PEOPLERSN
INNER JOIN ACCOUNTBILLFEE ABF ON F.FOLDERRSN = ABF.FOLDERRSN
INNER JOIN VALIDACCOUNTFEE VAF ON ABF.FEECODE = VAF.FEECODE

WHERE AP.NSFFLAG = 'Y'
AND F.FOLDERTYPE IN ('405B','405O')

一切正常,直到我添加底部的两个内部连接。我基本上是想获得所有有 NSF 的付款。当我运行简单查询时:
SELECT *
FROM ACCOUNTPAYMENT
WHERE NSFFLAG = 'Y'

我只有 3 行与 405B 和 405O 文件夹有关。所以我只希望在上面的查询中返回 3 行,但我得到 9 行,并且在某些列中重复了信息。我需要基于有效账户费用和账户账单费用表中的费用代码的确切 feedesc 和 gl 帐号。

我无法发布我的输出图片。

注意:当我在没有两个底部连接的情况下运行查询时,我得到了预期的输出。

有人可以帮助我提高查询效率吗?谢谢!

根据要求,以下是我的查询为 vaf.feedesc 和 vaf.glaccountnumber 列返回的结果:
Boiler Operator License Fee                                         2423809
Boiler Certificate of Operation without Manway - Revolving 2423813
Installers (Boiler License)/API Exam 2423807
Boiler Public Inspection/Certification (State or Insurance) 2423816
Boiler Certificate of Operation with Manway 2423801
Boiler Certificate of Operation without Manway 2423801
Boiler Certificate of Operation with Manway - Revolving 2423813
BPV Owner/User Program Fee 2423801
Installers (Boiler License)/API Exam Renewal 2423807

最佳答案

原因是至少有一个连接 ACCOUNTBILLFEE-FOLDERVALIDACCOUNTFEE-ACCOUNTBILLFEE不是一对一的。它允许一个文件夹拥有多个 AccountBillFees,或者一个 ValidAccountFee 拥有多个 AccountBillFees。

为了找到这种问题的原因,我通常这样做:

  • SELECT A, B, C您对 SELECT * 的部分查询.
  • 将结果减少到给您带来麻烦的行之一(通过添加 WHERE ... )。这是没有最后两个连接的单行和添加这两个连接后的几行。
  • 从左到右查看结果表。第一列可能会为所有行显示相同的值。一旦您看到列中的值之间存在差异,您就会知道您当前正在查看的列的表导致了“多行问题”。
  • 现在创建一个 SELECT *仅包含连接在一起的两个表的语句,这些表导致多行具有相同的 WHERE ...你上面用过。
  • 结果应该让您清楚地了解原因。
  • 一旦您知道问题的原因,您就可以想出解决方案;)
  • 关于sql - 最后两个连接导致重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21558968/

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