在Power BI中,打开RLS时出现以下测量错误(关闭RLS时不会显示此错误):
Join paths are expected to form a tree but the table has two join paths
这些是模型中的相关关系:
我的关系不活跃。此非活动关系用于解决问题的措施。但是由于它是非活动的,所以我会认为这不是问题??措施是:
TTipsInvs =
VAR SalesValue =
CALCULATE (
SUM ( ANSAPBICustomerTransDetailed[Outstanding] ),
USERELATIONSHIP ( 'ANSAPBICustomerTransDetailed'[SiteID], ANSAPBISites[Site ID] )
)
RETURN
IF ( ISBLANK ( SalesValue ), 0, ( SalesValue ) )
打开RLS时,有什么方法可以避免此问题?
为所有帮助欢呼
答案 0 :(得分:1)
TTipsInvs =
VAR SiteID =
CALCULATETABLE (
VALUES ( ANSAPBISites[Site ID] ) )
VAR SalesValue =
CALCULATE (
SUM ( ANSAPBICustomerTransDetailed[Outstanding] ),
TREATAS ( SiteID, 'ANSAPBICustomerTransDetailed'[SiteID] ) )
RETURN
IF ( ISBLANK ( SalesValue ), 0, ( SalesValue ) )
答案 1 :(得分:1)
我想补充一下@user9824134 的答案,遗憾的是没有太多解释(无法编辑)。
为什么TREATAS
:
clientID
) 的结果应用于第二个参数 ('ANSAPBICustomerTransDetailed'[SiteID]
) 中的列为什么会这样:
TREATAS
本质上是作为 CROSSFILTER
的替代品。通过在 clientID
表的 SiteID
列上应用 ANSAPBICustomerTransDetailed
过滤器,它正在模拟 CROSSFILTER
。VALUES
已经只返回一个不同的列表相似。下面的方法也有效,而且要短得多。如果未将过滤器传递给 CALCULATETABLE
表达式,则它不会执行任何操作,因此只需使用 VALUES
就足够了。
TTipsInvs =
VAR clientID = VALUES ( ANSAPBISites[Site ID] )
VAR SalesValue =
CALCULATE (
SUM ( ANSAPBICustomerTransDetailed[Outstanding] ),
TREATAS ( clientID, 'ANSAPBICustomerTransDetailed'[SiteID] ) )
RETURN
IF ( ISBLANK ( SalesValue ), 0, ( SalesValue ) )
答案 2 :(得分:0)