2014-03-02 87 views
1

所以,不知道如何解釋這一點,但在這裏。我正在翻譯一張佣金表。一些記錄具有相同的發票和項目,這意味着多人在該產品上獲得佣金。我想合併這些記錄,因此每個產品的每個發票只有一個記錄。基本上,就像金字塔計劃一樣,銷售人員對銷售額做出佣金,並取決於他們所處的級別,(1,2,3,4)上面的所有銷售人員也可以獲得佣金。因此,我需要查找發票和項目相同的記錄, 從各個記錄中提取數據,然後僅輸出一條包含該數據的記錄。ssis重複行和腳本組件

我很確定腳本組件是要走的路,但我不確定如何拉入多行數據以檢查重複的發票和項目,同時還保留每行的一些數據以便一起輸出。

讓我知道如果你有任何問題,我知道我沒有說最好的。

源表看起來像這樣

委員會表

SalespersonID - the person getting the commission 
InvoiceID - ID of invoice 
ItemID - ID of specific lineitem on invoice 
ProductID - ID of product sold 
Sales_Amt - total for that lineitem 
Salesperson Downlevel ID - ID of salesperson below SalespersonID if exists 
Commission Rate - percentage Salesperson receives 
Commission Total - amt salesperson receives 

還有一些其他的列,但這些都是很重要的。

我翻譯成看起來像這樣

委員會新成員表

CommissionId - Primary key for commission table 
CommissionPayable - amt salesperson gets 
CommissionPayableUpline1 - amt salespersonUpline1 gets 
CommissionPayableUpline2 - amt salespersonUpline2 gets 
CommissionPayableUpline3 - amt salespersonUpline3 gets 
CommissionRate - percent salesperson gets of amount 
CommissionRateUpline1 - percent salesperson upline1 gets 
CommissionRateUpline2 - percent salesperson upline2 gets 
CommissionRateUpline3 - percent salesperson upline3 gets 
SalespersonId - Id of salesperson 
SalespersonUpline1 - ID of salesperson upline1 
SalespersonUpline2 - ID of salesperson upline2 
salespersonUpline3 - ID of salesperson upline3 

所以你看,我們最多可以有四個層次銷售人員的表這一點。我們的銷售人員大多數只有1到2級,但是我們有幾個3級的深度,而目前沒有四級深度。它存儲在舊數據庫中的方式令人困惑,效率不高。

我想找到重複發票和商品ID,抓銷售人員,下級銷售人員以及每個佣金率和金額的行,然後將所有行插入到新系統的一行中。

+0

請包括您的表的樣本和所需的輸出。 – Jayvee

+0

除了Jayvee的建議,當你創建樣本源和目的地時,儘量將問題分解到基本級別,以便其他人不需要太瞭解業務需求的具體細節。通常我發現在這個過程中,解決方案會自動彈出。 –

+0

這可能是SQL查詢的工作...... – Justin

回答

0

那麼我終於通過使用ssis腳本組件,然後做了一些奇特的排序並在輸出中創建新記錄。