DAX 从绑定的结果集中选择一个值

DAX pick a value from tied resultset

我需要有关以下 dax 语句的帮助。

情况: 我有 2 tables。一个 table 包含带有文章 ID、日期 ID 和售价的销售数据,另一个 table 包含带有文章 ID、日期 ID 和购买价格的库存变动数据。根据 dateID,我想使用计算列将购买价格写入第一个 table,因为我需要每一行的价格。

示例:

表 1 t1

表 2 t2

我的 DAX 报表:

= CALCULATE (
    VALUES (t2[purchasePrice]);
        TOPN (
            1; 
            FILTER(FILTER(t2; t2[articleID] = t1[articleID]); t2[dateID] <= t1[dateID]); t2[dateID]; DESC
                  )
        )

我的 DAX 语句出现以下错误: 在需要单个值的地方提供了 table 多个值。

我在 table 2 中有不止一行匹配是正常的。 实际上我只想要它们中任何一个在相应的 dateID 上的价格,即使它们是并列的。所以我使用了值为 1 的 TOPN 函数并按日期排序,但错误仍然存​​在。有没有办法修复我的 DAX 语句以实现此目的?

在 T1 中创建计算列并使用此表达式:

purchasePrice =
CALCULATE (
    MAX ( T2[purchasePrice] ),
    FILTER ( T2, T1[ArticleID] = T2[articleID] && T1[DateID] = T2[dateID] )
)

请注意,我使用逗号分隔传递给函数的参数,但我在您的表达式中看到您使用了分号。更改它以匹配您的系统列表分隔符。

它没有经过测试,但应该可以。请让我知道这对你有没有用。