2014-07-21 56 views
0

我試圖在給定日期找到與提供的名稱匹配的重複記錄。我已經達到了接近我的目標的結果。但是這個查詢提供了所有行而不是給定日期的重複行。SQL - 查找給定日期的重複記錄數

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的記錄。如果我能以這種方式限制結果,我會認爲這是一個勝利。

謝謝。

SOLUTION

顯示填充NameID,次數和最早日期爲員工提供在某一天超過一個記錄。

"SELECT sTechID, MIN(Convert(NVARCHAR(25), sDateTime, 10)), COUNT(*) FROM LTI_Scout GROUP BY sTechID, CONVERT(NVARCHAR(25), sDateTime, 111) HAVING COUNT(*) > 1" 
+0

您是否嘗試過使用帶有HAVING語句的Group By子句?這通常是我找到重複的方式。 – websch01ar

回答

2

您是否考慮過使用GROUP BY和HAVING子句結合使用?這裏有一些可能讓你開始的虛假代碼:

Select NameID 
FROM TableName 
GROUP BY NameID, CONVERT(NVARCHAR(25), DateTime, 111) 
HAVING COUNT(*) > 1 
+0

我在輸出中也需要DateTime,但是當我嘗試將它添加到SELECT NameID,DateTime時,它告訴我它無效,因爲它未包含在聚合函數或Group BY子句中。你會解釋如何實現這一目標嗎? – Ccorock

+0

只需將其添加到Group By子句:GROUP BY NameID,CONVERT(NVARCHAR(25),DATETIME,111),DATETIME – websch01ar