我需要在另一个表的同一记录中返回一个副本及其对应的值。当 ID 或任何不同的值不同时,Group by 子句和 having 子句不起作用。我有 2 个表,表 DataTemp 和表数据。
我必须检查 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
到目前为止,选择没有返回任何结果。
数据温度如下: