我已经有一段时间不用处理 SQL 查询了,看起来很简单的查询让我发疯了。我有一个交易表,我试图根据各种标准从中选择重复。相关表结构如下:
[Transaction]
* ID int
Transacted datetime
Name nvarchar(50)
Description nvarchar(4000)
size bigint
从这个表中,我需要找到名称/大小的重复项,并报告名称具有相同大小事务的所有记录,即使日期和描述不同。我可以通过以下名称获得计数:
SELECT Name, COUNT(Name) AS Count
FROM Transaction
GROUP BY Name
然后我可以对其进行内部连接以获取其余数据:
SELECT data.ID, data.Transacted, data.Name, data.Description, data.Size, counts.Count
FROM (SELECT Name, COUNT(Name) AS Count
FROM Transaction
GROUP BY Name) AS counts
INNER JOIN Transaction AS data ON counts.Name = data.Name
WHERE (counts.Count > 1)
ORDER BY data.Name, data.Transacted
但显然这只是给我重复名称的交易 - 而不是重复名称和大小的地方。
我正在寻求帮助完成这篇文章,以便我报告所有数据,其中行显示相同名称和相同大小的重复。我可以轻松地将两列中的数据合并为一个结果并与之进行比较,但我不确定这是最佳方法。
提前致谢。