0

我有一个数据源,其中有一列 Part_Number。

我的第二个数据源有 Product_Family_ID、Product_ID 和 Part_Mask。

掩码是在类似表达式中使用的模式字符串,其中 part_number 类似掩码。例如“NXA%”或“001-[abcd][456]9-121%”

通常我们会根据可用的产品部件掩码查找产品系列的合法部件号,但在这种情况下,我需要朝另一个方向发展。根据零件号,我必须找到该产品系列中的所有相关产品并将其存储在汇总表中。

在 T-SQL 中模拟:

declare @partlist table (partnumber varchar(100))

insert into @partlist (partnumber) values ('nxampvg1')

select distinct pl.partnumber, match.Product_ID
from @partlist pl
join (  select m.masks, p.product_id from  MCS_ProductFamily_PartMasks m
    join Product p on m.ProductFamilyID = p.ProductFamily_ID) match
    on pl.partnumber like match.Masks

期望的输出:

Part_Number Product_ID
----------- ----------
nxampvg1    15629
nxampvg1    15631
nxampvg1    15632
nxampvg1    15633
nxampvg1    15634
nxampvg1    15635
nxampvg1    15636
nxampvg1    15637
nxampvg1    15638
nxampvg1    15639

如何在 SSIS 数据流任务中完成此任务?

4

1 回答 1

1

创建 2 个数据源,一个从源 1 获取所有部件号,另一个使用 select m.masks, p.product_id from MCS_ProductFamily_PartMasks m join Product p on m.ProductFamilyID = p.ProductFamily_ID 来自源 2 的内部查询获取所有产品 ID、产品系列和掩码。这些数据目标应该是同一 sql server 上的暂存表。然后只需以这种方式使用您在示例中所述的 SQL 的派生:select distinct pl.partnumber, match.Product_ID from STG_SOURCE_ONE pl join STG_SOURCE_TWO match on pl.partnumber like match.Masks

于 2013-08-19T19:03:21.950 回答