0

我已经加入了 5 个表并对这些表进行了转换。现在我最后得到了一张桌子。现在我想对这个单表执行 sql 查询来过滤记录。但我不知道如何在这张表上执行简单的 sql 查询。我附上了一张快照,显示了结果表。我如何将这个结果数据集作为源?我想在过滤掉这些数据后填充我的目的地。我正在使用 SSIS 2008。

单击此处查看我要在其上执行简单 sql 查询的表

4

3 回答 3

0
SELECT * FROM `first_table`
where `some_column` = 
(
SELECT `*`
FROM second_table
WHERE
`some_column2`='something'
LIMIT 1
)

试试这个代码这会有所帮助。您甚至可以使用它来连接所有这四个表。

于 2013-03-27T18:53:54.630 回答
0

从您发布的图像来看,您尝试查询的数据流中似乎有一组数据。此时您需要做两件事之一。要么将数据插入数据库中的表并使用另一个数据流来查询它,要么使用条件拆分(或多播和条件拆分)从那里进一步过滤行。

如果没有更多关于您实际尝试完成的任务的详细信息,这些是我可以确定的建议。

可以将行发送到记录集目的地,但您无法像常规表一样查询它,并且您需要一些 C#/VB 技能来访问它,以完成 FOR EACH 循环之外的更多操作。

于 2013-03-27T19:24:59.983 回答
0

假设您要对结果表运行的 sql 查询很简单,您可以使用脚本组件任务。简单来说,我的意思是,如果它具有这种性质:SELECT * FROM T WHERE a = 'zz' and b = 'XX' 等等。

但是,如果您的查询具有自连接,那么您最好将连接这 5 个表的结果转储到一个物理表中,然后从那里开始。

看起来查询将是真正的直截了当;在这种情况下,使用脚本组件会很有帮助。

一个单独的问题:建议在数据库级别进行排序。您在解决方案中使用了 5 个排序任务。你能解释一下原因吗?

于 2013-03-28T03:11:25.110 回答