微软BI开拓者数据仓库专区ETCL设计 SSIS如何实现T-SQL的join?

1  /  1  页   1 跳转 查看:3338

SSIS如何实现T-SQL的join?

SSIS如何实现T-SQL的join?




SELECT
    o.OrderID,
    c.CustomerID,
    c.CompanyName,
    o.OrderDate,
    od.UnitPrice,
    p.ProductID,
    p.ProductName
INTO tb
FROM Northwind.dbo.Orders AS o
    JOIN Northwind.dbo.Customers AS c
        ON o.CustomerID=o.CustomerID
    JOIN Northwind.dbo.[Order Details] AS od
        ON o.OrderID=od.OrderID
    JOIN Northwind.dbo.Products AS p
        ON od.ProductID=p.ProductID


这个查询在SQL Server中得到结果是198260条记录,
然后我想在SSIS中实现类似的功能,将这些记录插入到一个tb表中。

我在SSIS的操作是:
在数据流任务中添加一个“OleDB源”,然后指向连接管理器的Northwind库的Orders表
再加入一个“查找组件”然后再查找Customers表,CustomerID关联
再加入一个“查找组件”再查找[Order Details]表,OrderID关联,
再加入一个“查找组件”,查找Products表,ProductID关联

再输出到“SQL SERVER目标”中,但结果只有830行,跟Orders表行数一样。结果实现不到上面SQL代码的功能。

然后又试过用“合并联接”组件,也是不行。
-------------------------------------------------------

不知道该怎么操作?
 

回复:SSIS如何实现T-SQL的join?

你的查询代码有错误,将 
JOIN Northwind.dbo.Customers AS c
  ON o.CustomerID=o.CustomerID
改成
JOIN Northwind.dbo.Customers AS c
  ON o.CustomerID=c.CustomerID
 

回复:SSIS如何实现T-SQL的join?

哦,是的,手误,谢了。
这样的话,用合并联接是正常的。谢谢
 

回复:SSIS如何实现T-SQL的join?

原来是这么回事。。
 

回复:SSIS如何实现T-SQL的join?

SSIS当中,是可认写SQL语句的,如果你的inner join的表比较多,逻辑比较复杂,我建议还是用SQL语句,把该Sql语句封装到SSIS当中,这样做的好处:1 方便调试SQL语句 2 开发速度相对用控制快 3 逻辑也比较清淅
血染的风彩
 

回复:SSIS如何实现T-SQL的join?

当然,以上观点,仅是个人的开发心得,但不代表你一定要用这种方法,大家一起讨论
血染的风彩
 
1  /  1  页   1 跳转

版权所有 微软BI开拓者 

Powered by Discuz!NT 2.1.202    Copyright © 2001-2012 Comsenz Inc.
Processed in 0.078127 second(s) , 3 queries.
返顶部