[英]Removing Duplicates With Exception
在下图中,您会注意到存在多个实例,其中DetailID相同,但是EES_Base_Commission为0或0.2。
我想做的是,当DetailID相同且EES_Base_Commission大于0时,将结果集中的情况过滤掉 。
我尝试了一些重复的删除选项,例如GROUP BY // HAVING,但是在我的工作中没有找到适当利用计数的方法。
(临时表很大,因此不要链接它)
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
SELECT *
FROM table
WHERE EES_Base_Commission > 0
AND DetailID IN
(SELECT DetailID FROM table GROUP BY DetailID HAVING COUNT(*) > 1)
听起来您正在寻找一个不同的DetailID的列表,并且想要筛选出佣金大于0的任何记录。您可以使用DISTINCT和WHERE进行此操作。
SELECT DISTINCT
Trade_Date
, ContractNum
, DetailID
, EES_Base_Commission
FROM #Sales
WHERE EES_Base_Commission = 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.