SQL Server-查询返回重复记录

时间:2019-04-25 10:32:20

标签: sql-server tsql

我有以下代码:

select 
    b.ArpAccNo AS [Debtor no.]
    ,b.ArpAccName AS [Debtor name]
    ,a.TransDate
    ,d.InvoiceNumber
    ,a.ExtDocNo
    ,a.OrgAmt
    ,c.SettleAmt
    ,a.PostDate
    ,a.EqualisedPer
from 
    arptrans a 
inner join 
    ArpAccount AS b ON a.ArpAccId = b.ArpAccId
inner join 
    ArpEq AS c ON a.ArpTransId = c.CrArpTransId
inner join 
    JobInvoice AS d ON a.ArpAccId = d.DebtorId
where  
    a.CompId = '103'
    and ARPTransID IN (SELECT CrArpTransID 
                       FROM ArpEq 
                       WHERE ArpEq.EqDate >= '2019-03-21 00:00:00.000' 
                         AND ArpEq.EqDate <= '2019-03-31 00:00:00.000')

此查询返回以下数据集:

enter image description here

这会多次复制记录。

我正在寻找有关删除这些重复项的最佳方法的建议吗?

非常感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

这里没有重复项,与所有其他行相比,所有十六行的所有列都有唯一的值。

我看到一组b.column值,一组a.values,四个不同的d.InvoiceNumber和四个不同的c.SettleAmt值。由于此查询中没有SUM值,这意味着(1 A / B行)x(4 c行)x(4 d行)= 16,并且返回集中有16行。如果在所有表中查询JOIN条件列,则可能会证明这一点。

因此,请注意InvoiceNumber和SettleAmt列,并为我们详细说明您希望它们如何呈现。

{edit}另一种可能性是JOIN..ON准则中有一个胖手指,或者ON块不包含定义表之间唯一关系的所有列。