sqlssis:SSIS 查找组件 查找范围内的数据.

SSIS “查找组件查找范围内的数据.

我们知道.使用查询组件,可以查找相等的数据.

比如.我现在的数据是’liang’我要查另一个表中.外键列的值等于liang的其它列的信息.

这时候.我们只要将列映射一下即可.

但是,如果要查某个范围内的数据.则简单的这样关联列.就不可以了.

 

比如看这个例子.

CREATE TABLE tb1(ID int PRIMARY KEY,col decimal(10,2))

INSERT tb1 SELECT 1 ,26.21

UNION ALL SELECT 2 ,88.19

UNION ALL SELECT 3 , 4.21

UNION ALL SELECT 4 ,76.58

UNION ALL SELECT 5 ,58.06

UNION ALL SELECT 6 ,53.01

UNION ALL SELECT 7 ,18.55

UNION ALL SELECT 8 ,84.90

UNION ALL SELECT 9 ,95.60

 

CREATE TABLE tb2(ID INT IDENTITY PRIMARY KEY,Mindata decimal(10,2),

                 Maxdata decimal(10,2),Description varchar(20))

INSERT tb2(MinData,MaxData,Description)

SELECT null,30,'<30' UNION ALL

SELECT 30,60,'>=30 AND <60' UNION ALL

SELECT 60,70,'>=60 AND <70' UNION ALL

SELECT 70,80,'>=70 AND <80' UNION ALL

SELECT 80,90,'>=80 AND <90' UNION ALL

SELECT 90,null,'>=90'

 

tb1表中id1col小于30,所以它在tb2找到的数据是’<30’

如此类推.

 

这样的查找.”查找组件绝对可以完成.

 

1.数据流,设置好oledb数据源,在此,数据源的设置不再详说.此数据源的源表是tb1

2.添加一个查找组件.并将数据源的绿色工作流指向此查找组件.

3.双击查找组件.进入查找组件编辑器.引用表.选择tb2

 

 

 

5.进入高级选项卡.选中启用内存限制”.并选中修改SQL语句”.

并将SQL语句修改如下:

select * from

      (select * from [dbo].[tb2]) as refTable

where (? < Maxdata OR Maxdata IS NULL) AND (? >= Mindata OR Mindata IS NULL)

 

6.点击参数按钮.两个参数的输入都为col

7.完成查找组件的设置.再设置目标.即可.

4.再进入设置映射关系以及输出列Description

Tags:  sql2005ssis sybasessis ssis例子 sqlssis

延伸阅读

最新评论

发表评论