我需要在另一个表的同一条记录中返回单个重复项及其对应的值。当ID或任何其他值不同时,group by子句和Have子句不起作用。我有2个表,Table DataTemp和Table Data。
我必须检查Table DataTemp是否在同一表中包含重复项,并在同一选择中返回其对应文档的文档编号,以便我可以将其插入另一个表中。
有一个内部联接来查找其上载日期。
当我删除ID列并执行此操作时,它会找到重复项,但是当我添加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
到目前为止,选择未返回任何结果。
数据温度如下: