【发布时间】:2016-12-16 03:42:50
【问题描述】:
我正在使用 SQL Server 2014 和 Visual Studio 2015。
我有一个用于员工姓名的 SCD2,例如
SK AltKey Name Gender IsActive
1 15 Sven Svensson M 1
2 16 Jo Jonsson M 1
在事实表中
SK AgentSK CallDuration DateKey
100 1 335 20160808
101 2 235 20160809
因此,您可以看到多维数据集当前已链接到 FctAgentSK 和 DimSK。这按计划工作。但是,当 Jo 更改性别时,SCD2 使该行处于非活动状态 (0) 并插入一个具有新性别和 IsActive 为“1”的新行。
我面临的问题是事实SK 101 仍然引用代理的“旧”详细信息。我应该如何处理这个问题才能仍然报告通话,但也参考代理的“正确”详细信息 - 反映他们当前的性别。
当插入一个新事实时,它将分配“新”SK,但基本上我需要报告发生在性别变化两侧的所有呼叫。
有什么建议吗?
谢谢。
【问题讨论】:
-
这就是 SCD2 的工作方式——历史记录指向旧记录(及其属性)。新记录指向新记录(及其属性)。如果您想更改历史记录,请使用 SCD1(只需更新记录)。如果您不想要 SCD 功能,请不要使用它