删除具有异常的重复项

时间:2016-02-19 21:07:32

标签: sql sql-server database sql-server-2008 duplicates

在下图中,您会注意到有多个实例,其中DetailID相同,但EES_Base_Commission为0或0.2。

当DetailID相同且EES_Base_Commission大于0时,我尝试做的是过滤我的结果集案例。

我尝试了一些重复删除选项,例如GROUP BY // HAVING,但没有找到一种方法来正确利用我的努力中的计数。

Duplicate Results

(临时表很大,所以不会链接它)

SELECT Trade_Date, ContractNum, DetailID, EES_Base_Commission

FROM #Sales
SELECT Trade_Date, ContractNum, DetailID, COUNT(*) Duplicates

FROM #Sales

GROUP BY Trade_Date, ContractNum, DetailID

HAVING COUNT (*) > 1

ORDER BY DetailID

2 个答案:

答案 0 :(得分:0)

SELECT * 
FROM table
WHERE EES_Base_Commission > 0
AND DetailID IN
(SELECT DetailID FROM table GROUP BY DetailID HAVING COUNT(*) > 1)

答案 1 :(得分:0)

听起来您正在寻找明确的详细ID的列表,并且您希望过滤掉佣金高于0的任何记录。您可以使用DISTINCT和WHERE执行此操作。

SELECT DISTINCT 
Trade_Date
, ContractNum
, DetailID
, EES_Base_Commission

FROM #Sales

WHERE EES_Base_Commission = 0