2016-12-06 50 views
0

我目前的组织有重复使用产品代码的恶习。这意味着什么说,跳投,两年前现在是一双鞋。DAX模型中的时间点报告

这些表保存的表是第2类SCD,我们在我的DAX模型(我对DAX相当新)中称这个表为'Items',例如,

Item code | Description  | Valid From | Valid To 
1000  | Jumper   | 2016-01-01 | 2016-06-01 
1000  | Shoes   | 2016-06-02 | 2016-12-31 

有一家卖表,其中只有在DAX模型在它的商品代码,数量,销售和日期的价值,被称为“Sales”:

Item Code | SaleDate   | Quantity  | Value 
1000  | 2016-01-31  | 1   | 25.00 
1000  | 2016-02-29  | 2   | 50.00 
1000  | 2016-06-30  | 1   | 30.00 
1000  | 2016-10-31  | 1   | 30.00 

的期望从查询DAX模型如下当因此就把:

Item Code | Description | Quantity (sum) | Value (sum) 
1000  | Jumper  | 3    | 75.00 
1000  | Shoes  | 2    | 60.00 

我相信这需要在Sales表我DAX模型的计算链接到Items表,但努力想出我需要的东西。我试着在这个主题上进行一些阅读(比如Alberto Ferrari),但是清楚的解释并不是真的存在。

结构方面,销售表具有对日历表的查找引用,但Items表当前没有对任何表的引用(它没有足够的唯一条目来链接到Sales表)。

将不胜感激的任何指针/想法。

回答

1

创建两个措施:

Quantity Sum = 
CALCULATE (
    SUM (Sales[Quantity]), 
    FILTER (
     Sales, 
     [SalesDate] >= MAX (Items[Valid From]) 
      && [SalesDate] <= MAX (Items[Valid To]) 
    ) 
) 

Sales Sum = 
CALCULATE (
    SUM (Sales[Value]), 
    FILTER (
     Sales, 
     [SalesDate] >= MAX (Items[Valid From]) 
      && [SalesDate] <= MAX (Items[Valid To]) 
    ) 
) 

然后在您的客户端,您可以使用一个表或任何可视化由Items表和措施增加Item CodeDescription显示所需的输出以前创建。

这是导致电力BI矩阵:

enter image description here

让我知道,如果这有助于。

+0

作品,谢谢。我还决定将项目表中的密钥作为ETL的一部分添加到事实表中,这也是可行的。 – TJB