ssis复制行和脚本组件网

ssis复制行和脚本组件网,ssis,duplicates,components,Ssis,Duplicates,Components,所以,我不知道该如何解释这一点,但接下来是。我正在努力翻译一份佣金收入表。一些记录具有相同的发票和项目,这意味着多人通过该产品赚取佣金。我想合并这些记录,这样每个发票上每个产品只有一条记录。基本上,就像传销一样,销售人员对销售进行提成,根据他们所处的级别,(1,2,3,4)他们之上的所有销售人员也会获得提成。所以我需要找到发票和商品相同的记录, 从每个记录中提取数据,然后仅输出一个包含该数据的记录 我非常确定脚本组件是可行的方法,但我不确定如何拉入多行数据以检查重复的发票和项目,同时将每行的一些

所以,我不知道该如何解释这一点,但接下来是。我正在努力翻译一份佣金收入表。一些记录具有相同的发票和项目,这意味着多人通过该产品赚取佣金。我想合并这些记录,这样每个发票上每个产品只有一条记录。基本上,就像传销一样,销售人员对销售进行提成,根据他们所处的级别,(1,2,3,4)他们之上的所有销售人员也会获得提成。所以我需要找到发票和商品相同的记录, 从每个记录中提取数据,然后仅输出一个包含该数据的记录

我非常确定脚本组件是可行的方法,但我不确定如何拉入多行数据以检查重复的发票和项目,同时将每行的一些数据一起输出

如果你有任何问题,请告诉我,我知道我没有说得最好

源表如下所示

佣金表

 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
还有其他一些专栏,但这些都是重要的

我正在把它转换成一张像这样的桌子

新佣金表

 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个级别,目前没有一个是4个级别。它在旧数据库中的存储方式令人困惑,效率也不高


我想找到具有重复发票和项目ID的行,抓取销售人员和下级销售人员,以及每个行的佣金率和金额,然后将所有内容插入新系统中的一行。

我最终通过使用ssis脚本组件解决了这个问题,然后进行了一些奇特的排序,并在输出上创建了新记录。

请包括表的样本和所需的输出。除了Jayvee的建议,当您创建样本源和目标时,努力将问题分解到基本层面,这样其他人就不必太了解业务需求的细节。我经常发现,在这个过程中,一个解决方案会自动神奇地弹出。这可能是SQL查询的工作……我和Justin在一起:这在T-SQL中很容易做到,使用
GROUP BY
。您创建了一个执行sql任务,该任务执行
选择。。。进入从…起分组依据…
,其中,
中指定了一个新的表名。嘿,谢谢,伙计们,我想我明白你们的意思了,但我不确定在分组时如何从每条记录中提取数据。你能给我举个简单的例子吗。