跨角色扮演日期维度的SSAS表格日期过滤器

时间:2016-02-01 20:53:01

标签: ssas olap ssas-tabular

使用累积快照事实,我在表格多维数据集中有多个角色扮演日期维度。

用户希望能够查看在给定时间段内发生的任何日期事件的时间(与工具中非常自然的所有日期事件相反)。

这实际上是一个OR语句。

我尝试添加日期维度的另一个实例,然后将所有角色扮演维度加入其中(如下所示),但是没有取得多大成功。 enter image description here

未完全显示,但指出的是与尺寸相关的两个事实表。

如何从数据透视表中将OR条件实际应用于多个维度?

目前的问题是检索给定月份中已接收,已退回或已开票的订单数量。如:

Time Period = January 2016
Received Count = 20
Returned Count = 16
Invoiced Count = 32

因此,ReceivedDateSID = 20160101和ReturnedDateSID = 20160115以及InvoicedDateSID = 20160130的事实记录应在每个度量中计数一次。

1 个答案:

答案 0 :(得分:0)

一种性能良好但需要3倍以上内存的直接方法是:

  1. 有一个DimDate
  2. 有FactReceipt,FactReturn,FactInvoice。 FactReceipt在ReceiptDateKey上加入DimDate。 FactReturn在ReturnedDateKey上加入DimDate。 FactInvoice在InvoiceDateKey上加入DimDate。
  3. 您甚至可以在定义这些事实表的SQL视图上放置where子句。例如,您只需要在FactReturn中返回的订单的1%。
  4. 我个人更喜欢这种方法来处理大量复杂的DAX。任何时候一个度量(如返回计数)只对一个角色扮演日期维度有意义我考虑这种方法。

    您也可以考虑隐藏其中一个事实表,并将所有计算出的度量放在一个主事实表中。这可以减少用户的混淆。虽然钻井工作不会正常工作。