DAX 从绑定的结果集中选择一个值
DAX pick a value from tied resultset
我需要有关以下 dax 语句的帮助。
情况:
我有 2 tables。一个 table 包含带有文章 ID、日期 ID 和售价的销售数据,另一个 table 包含带有文章 ID、日期 ID 和购买价格的库存变动数据。根据 dateID,我想使用计算列将购买价格写入第一个 table,因为我需要每一行的价格。
示例:
表 1 t1
- t1.articleID = 123; t1.dateID = 20160905; t1.sellPrice = 62,55; t1.purchasePrice = 我的 DAX 报表
表 2 t2
- t2.articleID = 123; t2.dateID = 20160905; t2.purchasePrice = 37,07
- t2.articleID = 123; t2.dateID = 20160905; t2.purchasePrice = 37,07
- t2.articleID = 123; t2.dateID = 20160906; t2.purchasePrice = 37,07
- t2.articleID = 456; t2.dateID = 20160905; t2.purchasePrice = 12,15
我的 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] )
)
请注意,我使用逗号分隔传递给函数的参数,但我在您的表达式中看到您使用了分号。更改它以匹配您的系统列表分隔符。
它没有经过测试,但应该可以。请让我知道这对你有没有用。
我需要有关以下 dax 语句的帮助。
情况: 我有 2 tables。一个 table 包含带有文章 ID、日期 ID 和售价的销售数据,另一个 table 包含带有文章 ID、日期 ID 和购买价格的库存变动数据。根据 dateID,我想使用计算列将购买价格写入第一个 table,因为我需要每一行的价格。
示例:
表 1 t1
- t1.articleID = 123; t1.dateID = 20160905; t1.sellPrice = 62,55; t1.purchasePrice = 我的 DAX 报表
表 2 t2
- t2.articleID = 123; t2.dateID = 20160905; t2.purchasePrice = 37,07
- t2.articleID = 123; t2.dateID = 20160905; t2.purchasePrice = 37,07
- t2.articleID = 123; t2.dateID = 20160906; t2.purchasePrice = 37,07
- t2.articleID = 456; t2.dateID = 20160905; t2.purchasePrice = 12,15
我的 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] )
)
请注意,我使用逗号分隔传递给函数的参数,但我在您的表达式中看到您使用了分号。更改它以匹配您的系统列表分隔符。
它没有经过测试,但应该可以。请让我知道这对你有没有用。