我正在为基于MySQL的SugarCRM应用程序构建SSAS表格模型 . 令人不快的SugarCRM功能之一是在 real 关系仅为 one-to-many
的情况下创建桥接表(即事实上 many-to-many
关系) . 当我需要从 one
侧的表中获取值到 many
侧的表中的计算列时,此冗余桥表会导致问题 .
我在 many
方面尝试了类似于计算列的内容:
=
CALCULATE (
VALUES ( 'OneSideTable'[field_i_need] ),
FILTER (
'OneSideTable',
CALCULATE (
COUNTROWS (
FILTER (
'BridgeTable',
'BridgeTable'[ManyTableID] = ManyTable[ID]
)
)
)
= 1
)
)
但它抛出一个错误:
无法在当前上下文中确定表'ManyTable'中列'ID'的值 . 检查计算表达式中引用的所有列是否存在,并且没有循环依赖项 . 当度量的公式直接引用列而不对该列执行任何聚合(例如求和,平均值或计数)时,也会发生这种情况 . 该列没有单个值;它有许多值,每个表对应一行,并且没有指定任何行 .
在这种特殊情况下,有没有办法模仿RELATED函数?
1 回答
看起来我找到了解决方案,它似乎有点简单,我以前想过:
注意使用
'BridgeTable'[deleted] = 0
过滤规则以避免获取与非活动相关的OneTableID . 这是与SugarCRM相关的特殊功能 .