3

我有一个employee带有 、 和 的表employee_idname其中working_divisionemployee_id主键。我有一个 Excel 源代码,其中包含这些列以及更多信息,其中员工输入了他们的工作时间、他们所做的工作类型、公司的哪个部门等等。

因此,对于任何一天的员工,我都可以有多行显示他们的工作类型、他们工作的部门以及他们对该部门的收费小时数。

如何将它放入employee_id主键的 OLE DB 中?

我正在尝试使用聚合转换来按 分组employee_id,但是employee_idandworking_divisions不是一对一的。因此,这两个列上的 group by 操作将尝试将相同employee_id的插入到employee表中(这employee_id是主键!)如果我不包括working_division聚合转换,那么我会丢失数据。

如何按 对我的数据进行分组employee_id,并且仍然保留该行的所有其他列?

感谢所有的帮助!

4

1 回答 1

5

我需要employee_id 成为PK。基本上我有一个非常大的无组织数据源,我将它分成 4 到 5 个单独的表以适合我的模型,这样我就可以使用一些数据挖掘算法来理解数据

好的,那你为什么不拆分employee_idworking_division放在两个单独的表中呢?第二个表应该为员工表保留一个 FK(所以一对多)。

然后,在 SSIS 包中,您可以在 Aggregate on之后添加一个多播employee_id组件,以便在 2 个目标表中拆分您的数据源。

我认为如果不修改您的目标模型,您将无法实现您想要的。它基本上违反了RDBMS的规则。即使在纯 SQL 中也无法完成您正在谈论的分组并产生正确的结果。

注意:如果您担心修改您的目标数据模型,那么也许您可以像我之前提到的那样对其进行规范化,然后通过视图将其反规范化。您甚至可以创建一个索引视图以在读取时加快速度(据我所知,索引视图应该是可能的,因为您所拥有的只是两个表之间的内部连接)。

于 2012-06-18T19:05:29.540 回答