【发布时间】:2014-07-22 03:30:37
【问题描述】:
我正在尝试在给定日期查找与提供的名称匹配的重复记录。我已经取得了接近目标的结果。但是此查询提供所有行而不是在给定日期重复的行。
SELECT NameID, DateTime, ROW_Number() over(PARTITION BY NameID, CONVERT(NVARCHAR(25), DateTime, 111) ORDER BY DateTime ASC) DuplicateCount FROM Employee ORDER BY NameID
我只想返回给定日期具有多个 NameID 条目的员工的记录。这是在 Visual Studios 2008 中运行的。我通过数据读取器返回结果并从那里填充列表视图。
基本上,我只是缺少一个只返回 DuplicateCount > 1 记录的元素。如果我可以以这种方式限制结果,我会认为这是一个胜利。
谢谢。
解决方案
显示在给定日期拥有多条记录的员工的姓名 ID、计数和最早日期。
"SELECT sTechID, MIN(Convert(NVARCHAR(25), sDateTime, 10)), COUNT(*) FROM LTI_Scout GROUP BY sTechID, CONVERT(NVARCHAR(25), sDateTime, 111) HAVING COUNT(*) > 1"
【问题讨论】:
-
您是否尝试过使用带有 HAVING 语句的 Group By 子句?这通常是我查找重复项的方式。