加入两个具有不同列数的表

时间:2013-01-16 06:28:09

标签: sql sql-server-2008 join ssis business-intelligence

我在ssis中有这样的场景 - 我有两个不同的输入,其中一个来自查找nomatch输出。另一个输入实际上是一个派生列,它使用sql查询从oledb源中的单行单列结果中获取。问题是我需要加入这两个输入,并使其成为一个数据集,以进一步将数据推送到crm目的地(Cozyroc)。

我知道联盟所有人都无法完成工作,因为它适用于来自不同数据集的行的联合。

也不能使用合并和合并连接,因为为了加入两个数据集需要给出一个共同的id或key,而且我没有这样的东西。

例如,我的第一个数据集如下:

usinessid          userid      name
---------          ------      ----
ret678             435         john
dfgt67             213         sam

我的第二个数据集如下:

systemid
------------------------
6666-777-kjtyr-213t-ytui

使用oledb source-sql命令使用单列单行查询提取。

有没有办法合并这两个数据集,以便最终结果如下:

businessid         userid           name          systemid
----------         ------           ----          ------------------------
ret678             435              john          6666-777-kjtyr-213t-ytui 
dfgt67             213              sam           6666-777-kjtyr-213t-ytui

我想在不使用变量或使用派生列并对systemid值进行硬编码的情况下执行此操作。

原谅我的编辑......

关于这个问题的任何进一步意见都会非常有用。

1 个答案:

答案 0 :(得分:2)

要以您显示的方式组合两个数据集,您可以使用简单的交叉连接:

SELECT
  t1.businessid,
  t1.userid,
  t1.name,
  t2.systemid
FROM
  table1 t1
CROSS JOIN
  table2 t2
;