在下图中,您会注意到有多个实例,其中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
答案 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