码迷,mamicode.com
首页 > 其他好文 > 详细

条件拆分控件使用

时间:2014-07-16 00:40:19      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   文件   

在进行ETL数据抽取的时候,往往会对数据进行条件拆分,比如当[工资]》5000时,才进入数据仓库,否则输出到Excel。类似这种需求。今天就来讲解一下条件拆分控件的使用。达到的目的就是把[OrderStatusCode]等于99的输出到数据仓库,不等于99的输出到Excel中。

第一步:准备原始数据,创建表以及在表中添加数据,脚本如下:

CREATE TABLE [dbo].[MemberOrderStatus](
    [OrderStatusCode] [varchar](2) NULL,
    [OrderStatusName] [nvarchar](20) NULL,
    [Status] [varchar](1) NULL
) ON [PRIMARY]

INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N01,N未提交,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N02,N已提交,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N03,N已审核,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N04,N分拣完成,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N05,N配送中,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N06,N签收,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N07,N退货中,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N08,N退货入库,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N09,N配送异常,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N10,N缺货,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N11,N订单挂起,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N12,N已调度,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N13,N已生成分拣计划,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N14,N已打印,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N15,N已生成出库单,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N16,N已出库,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N17,N已复核,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N18,N自退货中,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N19,N自退货入库,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N20,N退货已入库,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N21,N已锁定,NA)
INSERT INTO [MemberOrderStatus]([OrderStatusCode],[OrderStatusName],[Status]) VALUES(N99,N取消,NA)

第二步:创建一个Excel文件,用于存放[OrderStatusCode]不等于99的数据。

第三步:打开VS,新建一个SSIS项目。

第四步:在控制流视图中,拖入一个数据流任务,然后双击这个数据流任务,进入数据流任务,在界面中拖入一个OLE DB源,双击这个控件进行数据源的设置,如图所示:

bubuko.com,布布扣

第五步:拖入一个条件拆分控件,双击进行设置,这步是关键,需要把[OrderStatusCode]等于99的数据找出来,导入到数据仓库中,不等于99的数据导入到Excel中。实现的关键就是对函数的使用,大家如果对其中的函数不熟悉,可以MSDN官网学习。 如图所示:

bubuko.com,布布扣

第六步:这时的数据有两个走向,一个是导入数据仓库,第二个是导入到Excel,所以需要拖入两个目标控件。当然在导入前有必要进行数据转换,数据源和目标的字段类型要匹配。如图所示:

bubuko.com,布布扣

第七步:大功告成,直接运行包,结果如图所示:

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

 

 

 

条件拆分控件使用,布布扣,bubuko.com

条件拆分控件使用

标签:style   blog   http   color   使用   文件   

原文地址:http://www.cnblogs.com/zhouzhou-aspnet/p/3845061.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!