0

我们有一个事实表,它收集员工选择福利时的详细信息。我们试图解决的问题是如何计算所有员工选择的总福利。

我们确实有一个 BenefitSelectedOnDay 标志,通常我们可以对此进行求和以获得结果,但这仅适用于福利选择,因为我们开始加载数据。

例如:

  • 假设客户#1 自 2016 年 10 月以来一直在使用我们的分析工具。我们在平台中有 4 个月的数据。
  • 在 10 月份加载数据时,Benefits 源数据将显示:
    1. 员工#1 于 2016 年 4 月 4 日选择了一项福利。
    2. 员工#2 于 2016 年 10 月 3 日选择了一项福利

为 Employee#2 设置 BenefitSelectedOnDay 标志非常简单。

问题在于如何处理 Employee#1,因为我们无法在事实表中该客户不存在的那一天设置标志。客户#1 的数据将从 2016 年 10 月 1 日开始。

在某些情况下,计算利益选择是有问题的。如果我们按日期过滤报告并仅查看 2016 年第四季度的福利选择,我们没有问题。但是,如果我们想要总福利选择计数,我们会遇到问题,因为我们没有为 Employee#1 设置标志,因为选择日期早于 Client#1 的数据集范围(目前是 2016 年 10 月 1 日 - 2017 年 1 月 31 日)。

4

1 回答 1

0

在您的场景中,两种方法似乎是合乎逻辑的:

  1. 加载一些历史数据,可以追溯到与当前报告仍然相关的第一个福利选择日期。虽然这可能需要一些工作和额外的空间,但如果员工根据福利的有效时间有资格获得不同的福利,这可能是您唯一的解决方案。

  2. 添加加入日期(在本例中为 9 月 30 日)前一天的记录,并将之前选择并在客户加入日期(10 月 1 日)有效的所有福利标记为在该日期选择。它们将在 10 月报告窗口之外,但会计入无限制查询。如果好处是二进制开/关的东西,这应该可以正常工作。

就个人而言,除非存储要求很荒谬,否则我会选择选项 1。即使这样,您也只能将标记的记录加载到事实表中。如果您的客户能够在加入日期之前选择一个时期并获得损坏的数据,他可能会感到困惑,但您可以解释/证明这一点。

于 2017-02-16T09:19:21.003 回答