我有以下代码:
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')
此查询返回以下数据集:
这会多次复制记录。
我正在寻找有关删除这些重复项的最佳方法的建议吗?
非常感谢所有帮助。
答案 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块不包含定义表之间唯一关系的所有列。