返回单个重复行和对应的值

时间:2019-08-08 12:35:26

标签: sql-server tsql

我需要在另一个表的同一条记录中返回单个重复项及其对应的值。当ID或任何其他值不同时,group by子句和Have子句不起作用。我有2个表,Table DataTemp和Table Data。

我必须检查Table DataTemp是否在同一表中包含重复项,并在同一选择中返回其对应文档的文档编号,以便我可以将其插入另一个表中。

有一个内部联接来查找其上载日期。

当我删除I​​D列并执行此操作时,它会找到重复项,但是当我添加ID列时,即使Check_1列重复,也不会返回任何重复项。

我从此查询开始,查找重复项

SELECT
TD.Check_1,
COUNT(TD.ID)
FROM
TblDataTemp TD
GROUP BY TD.Check_1
HAVING COUNT(TD.ID) > 1;
GO

并且它返回重复项,只有当我输入ID时,它才不返回结果。

Check_1                         (No column name)
05/08/2019 00:00:00123120.12         2

这是完成这项工作所需的代码。


INSERT INTO TblDuplicatesWorkflow (ID,PostingDate,DocumentDate,Account,Reference,CompanyCode,TaxCode,PaymentCode,Amount,DocumentCurrency,                               DocumentNumber,BarCode,BankType,CorrespondingDocumentNumber, DateUploaded)

SELECT 
        dt.ID,dt.PostingDate,dt.DocumentDate,DT.Account,DT.Reference,dt.CompanyCode,dt.TaxCode,
        dt.PaymentCode,dt.Amount,dt.DocumentCurrency,dt.DocumentNumber,dt.BarCode,dt.BankType,'**Corresponding Duplicate**',td.DateUploaded
FROM
TblDataTemp dt
INNER JOIN TblData td
ON dt.ID = td.ID
GROUP BY dt.ID,dt.PostingDate,dt.DocumentDate,DT.Account,DT.Reference,dt.CompanyCode,dt.TaxCode,
        dt.PaymentCode,dt.Amount,dt.DocumentCurrency,dt.DocumentNumber,dt.BarCode,dt.BankType,td.DateUploaded
HAVING (COUNT(dt.Check_1) > 1);
go

到目前为止,选择未返回任何结果。

数据温度如下:

DataTemp Table

0 个答案:

没有答案