2016-02-19 64 views
0

在下圖中,您會注意到存在多個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 
+0

請顯示您的代碼。 – dfundako

+0

我添加了代碼。 – Byronyk

回答

0

這聽起來DetailID,你想過濾任何超過0的佣金記錄。你可以用DISTINCT和WHERE做到這一點。

SELECT DISTINCT 
Trade_Date 
, ContractNum 
, DetailID 
, EES_Base_Commission 

FROM #Sales 

WHERE EES_Base_Commission = 0 
+0

這解決了我的問題,只需稍作更改!我真的需要 - 在這種情況下 - 使基本佣金> 0而不是= 0。結構雖然工作,非常感謝很多朋友! – Byronyk

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

這給了我一個空白的結果集。 – Byronyk

+0

對不起,我完全錯誤地使用了DISTiNCT關鍵字,給了我一些時間,我會編輯我的答案。 –

+0

我編輯了我的答案,檢查出來並讓我知道 –