【问题标题】:DAX calculated column using IF to evaluate value from another tableDAX 计算列使用 IF 来评估另一个表中的值
【发布时间】:2018-06-25 19:29:15
【问题描述】:

我正在使用 SSAS 表格,其中有两个具有 1:n 关系的表,PositionTransaction。 PositionID 上存在有效的 1:n 关系

位置

+------------+------+--------+
| PositionID | Type | Source |
+------------+------+--------+
| C1000      | A    | 1      |
+------------+------+--------+
| C1200      | B    | 2      |
+------------+------+--------+
| C1400      | C    | 1      |
+------------+------+--------+

交易

+---------+------------+--------+
| TransID | PositionID | Amount |
+---------+------------+--------+
| 1       | C1000      | 150    |
+---------+------------+--------+
| 2       | C1000      | 200    |
+---------+------------+--------+
| 3       | C1400      | 350    |
+---------+------------+--------+

我想在表 Transaction 上创建一个计算列,该列具有以下逻辑: IF Position[Type]="A" AND Position[Source]1 THEN Transaction[Amount] * -1 ELSE Transaction[Amount] * -1

我尝试在 DAX 中使用 RELATED 函数,但它没有检测到相关的 Position 表;当我手动输入时,它返回错误“找不到表”:

=IF(RELATED(Position[Type]) = 'A' && RELATED(Position[Source]) <> 1;-1*Transaction[Amount];Transaction[Amount]) 

我在 1:n 关系的 1 侧的表上没有重复项。我应该尝试不同的 DAX 函数吗?

【问题讨论】:

    标签: ssas ssas-tabular


    【解决方案1】:

    我尝试使用 LOOKUPVALUE,目前看起来不错。

    =IF(LOOKUPVALUE(Position[Type];Position[PositionID];Transaction[PositionID])="A"&&LOOKUPVALUE(Position[Source];Position[PositionID];Transaction[PositionID])<>"1";-1*Transaction[Amount];Transaction[Amount])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      相关资源
      最近更新 更多