我试图在给定的一天找到与提供的名称匹配的重复记录。我已经取得了接近目标的结果。但是此查询提供了所有行,而不是给定日期的重复行。
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条目的Employee的记录。这是在Visual Studios 2008中运行的。我通过数据读取器返回结果并从那里填充列表视图。
基本上,我只是缺少一个只返回DuplicateCount>记录的元素。 1.如果我能以这种方式限制结果,我认为这是一个胜利。
谢谢。
解
显示在给定日期具有多个记录的员工的NameID,count和最早日期。
"SELECT sTechID, MIN(Convert(NVARCHAR(25), sDateTime, 10)), COUNT(*) FROM LTI_Scout GROUP BY sTechID, CONVERT(NVARCHAR(25), sDateTime, 111) HAVING COUNT(*) > 1"
答案 0 :(得分:2)
您是否考虑过将GROUP BY和HAVING条款结合使用?以下是一些可能让您入门的假代码:
Select NameID
FROM TableName
GROUP BY NameID, CONVERT(NVARCHAR(25), DateTime, 111)
HAVING COUNT(*) > 1