2009-06-15 50 views
0

我刚开始潜入数据仓库,我有一个问题,我似乎无法弄清楚。数据仓库报告问题

我有一家企业,有十家商店,每家都有一定的员工。在我的数据仓库中,我有一个代表商店的维度。员工维度是一个SCD,包含开始/结束的列和员工正在工作的商店。

我的事实表基于员工给(商店经理)匿名提供的建议。该表包含建议类型(清洁度,工资问题等),提交日期(外键输入时间维度表)以及提交的商店。

我想要做的是创建一个报告,显示给定年份中建议数量与员工数量的比率。由于员工数量会定期更改,我不能对员工总数进行简单查询。

不幸的是,我已经搜索了很多网站,试图找到一个解决方案,但大多数的例子是基于零售的销售,这是我试图做的不同。

任何帮助,将不胜感激。我的机器上安装了AdventureWorksDW,因此如果有人使用它提供建议,我可以将其作为参考。

在此先感谢!

+0

您正在使用SQL呢?如果你发布你的基本表结构,这将有所帮助。 – Nick 2009-06-15 14:48:58

回答

1

缓慢变化的维度应该有一个自然键来标识行的来源(否则它将如何知道要比较什么来检测变化)。这在维度的所有迭代中应该是不变的。您可以通过计算自然密钥的不同数量来计算员工数量。

编辑:如果您的交易表(建议)上有一个日期,建议日期的计算功能分组员工的重复计数(例如datepart (yy, s.SuggestionDate))和业务单元应该这样做。您不必担心员工维度上的日期,因为适用的行应直接连接到事务处理表。

+0

我在员工表上有一个自然键。最大的问题是在查询立方体时,在特定时间段内为特定业务单位计算雇员人数。如果需要架构,请让我知道,我会发布一些东西 – bdowden 2009-06-15 16:15:39

0

为每个月的每个商店中的员工数量添加另一个事实表 - 您可以使用该月份的最大数量。然后将这一年的平均月份用作“一年中员工数量”。

在每个月末加载新的事实表。新表将如下所示:

事实表:EMPLOYEECOUNT

KeyEmployeeCount INT - 代理键

KEYDATE INT - FK迄今为止尺寸,点到一个月

密钥库的最后一天INT - FK到商店维度

NumberOfEmployes INT - (最大)在指定店的员工当月的数量

如果您需要更高分辨率,请使用“每周”或甚至“每天”。主要想法是在一年中平均给定商店的NumberOfEmployes度量。