gpt4 book ai didi

ssas - DAX SUMX : Storing a filtered table in a VAR and reference its columns later on in the expression

转载 作者:行者123 更新时间:2023-12-02 00:54:41 27 4
gpt4 key购买 nike

在度量 (SUMX) 中,我过滤了一个表并将其存储在一个变量中。

var currency = factFx[ALPHABETIC_CURRENCY_1]

var fxRates = FILTER(
factMarketDataExchangeRates;
factMarketDataExchangeRates[FX_CURRENCY] = currency
)

然后我需要进行计算,包括进一步过滤 fxRates

var exchangeRateOnTradeDate = CALCULATE(
[Measure];
FILTER(
fxRates;
fxRates[CURVE_DATE] = tradeDate
)
)

这会在 SSDT Cannot find table fxRates 中引发错误

此外,智能感知似乎无法正常工作。但是以下每一项都有效。 但这是预期的行为吗

没有表前缀:

var exchangeRateOnTradeDate = CALCULATE(
[Measure];
FILTER(
fxRates;
[CURVE_DATE] = tradeDate
)
)

使用基础表的前缀:

var exchangeRateOnTradeDate = CALCULATE(
[Measure];
FILTER(
fxRates;
factMarketDataExchangeRates[CURVE_DATE] = tradeDate
)
)

最佳答案

是的,这是预期的行为。您只能对数据模型中的表使用 table[COLUMN] 语法。

您的两个工作版本都等同于替换 fxRates 的定义。

var currency = factFx[ALPHABETIC_CURRENCY_1]

var exchangeRateOnTradeDate =
CALCULATE (
[Measure];
FILTER (
FILTER (
factMarketDataExchangeRates;
factMarketDataExchangeRates[FX_CURRENCY] = currency
);
factMarketDataExchangeRates[CURVE_DATE] = tradeDate
)
)

由于 [CURVE_DATE] 最终派生自 factMarketDataExchangeRates,因此使用该表前缀实际上是幕后发生的事情,但您可以使用该表所在的其他版本被抽象出来,不会使您的代码困惑。

要记住的重要一点是,在这种情况下,fxRates 变量实际上并不是一个表,而是一种语义技巧,可以让代码更易读。

关于ssas - DAX SUMX : Storing a filtered table in a VAR and reference its columns later on in the expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55180183/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com