Ssas 为两个事实表之间的关系建模

Ssas 为两个事实表之间的关系建模,ssas,olap,olap-cube,ssas-2008,Ssas,Olap,Olap Cube,Ssas 2008,我有一个销售事实表、一个订单事实表(都是行级详细信息)和两个日期角色扮演维度(来自日期维度),用于订单日期和交易日期 我试图让您能够按订单日期查看销售指标,按交易日期查看订单指标 如果销售来自订单,则Sales表具有相关订单行的键;如果是非订单销售,则为null。订单表没有任何指向相关事务的链接 我一直在想如何基于两个事实表之间的链接来建立关系模型,我唯一能做的就是基于Orders表创建一个维度,它只包含键,然后使用多对多关系。。。这似乎完全错了,但我不确定什么是解决这种情况的“正确”方法 如果

我有一个销售事实表、一个订单事实表(都是行级详细信息)和两个日期角色扮演维度(来自日期维度),用于订单日期和交易日期

我试图让您能够按订单日期查看销售指标,按交易日期查看订单指标

如果销售来自订单,则Sales表具有相关订单行的键;如果是非订单销售,则为null。订单表没有任何指向相关事务的链接

我一直在想如何基于两个事实表之间的链接来建立关系模型,我唯一能做的就是基于Orders表创建一个维度,它只包含键,然后使用多对多关系。。。这似乎完全错了,但我不确定什么是解决这种情况的“正确”方法

如果可能的话,我希望在按订单日期查看销售指标时,非订单销售显示为“未知”订单日期,这样您就可以看到完整的图片,而不仅仅是订单销售。使用上述方法,这种情况不会发生


关于需要更改哪些内容才能使其正常工作,您有什么建议吗?

您的思路是正确的。我将在关系数据库中创建一个视图,或者在DSV中创建一个命名查询,其中包含不同的非空顺序ID作为单个列,可能称之为“DimOrderId”。然后从中构建一个维度,将“Null processing”属性设置为“UnknownMember”(您必须在BIDS中单击属性“Key Columns”属性的“plus”两次才能访问该属性)


然后将此维度用于多对多关系。

您应该使用订单ID查找订单日期,并将订单日期维度键放入Sales Transaction事实表中。由于每个订单可能有多个事务,因此采用另一种方式可能没有意义。如果是1:1,则可以做相反的操作,但这意味着一旦事务发生,就要更新订单事实,这可能会导致加载时间复杂性和性能下降。确保您确实需要按交易日期排序。

如果没有代码,通常很难猜出确切的问题是什么,而猜出答案通常是任何人唯一能做的事情。如果您提供了以前尝试的一段代码,那么理解您遇到的确切问题就会容易得多。这段代码甚至可以是根本不起作用的代码,因为它仍然可以更好地了解您正试图做什么。。。。什么代码?这是一个ssas问题,关于在事实表和dim表之间建立关系。我说的是表格和结构,而不是“代码”。