我需要查询一个表以查找重复的存款记录,其中在某个时间范围内在一个现金终端上以相同金额进行的两次存款被视为重复记录。我现在开始处理查询,但是希望对“正确”执行此操作有任何建议。
通常,您需要对同一张表进行自我联接,然后将“重复”条件放入联接条件中。
例如
SELECT * FROM Transactions t1 inner join Transactions t2 on t1.Terminal = t2.Terminal and t1.Amount = t2.Amount and DATEDIFF(minute,t2.TransactionDate,t1.TransactionDate) between 0 and 10 and t1.TransactionID > t2.TransactionID /* prevent matching the same row */