Power BI 为什么检测到循环依赖
Power BI why circular dependency is detected
当我尝试在维度#product(或#region)和#bridge table之间建立关系时,你能解释一下为什么我运行进入这个循环依赖的警告信息吗?产品 x 区域的笛卡尔?
我已通过单列 P@G 将#bridge 与销售和预算联系起来 是产品和地区的串联。
在此处下载文件:PBIX
一个快速而肮脏的解决方案是使用 VALUES
创建 #product
和 #region
的新版本。这可能不是最好的方法...
NewProduct = VALUES('#product'[product])
这个新表可以通过 1:* 关系链接到 #bridge
,因此可以用作仪表板上的切片器。
Alberto 在 sqlbi 博客上写过:Circular dependency sqlbi blog
解决方法很简单。不要在 DAX 桥 tables 中使用 CALCULATE 函数。而是稍后将所有这些列添加到与 计算列 相同的 table。
我更改了桥的原始代码 table 是:
ADDCOLUMNS (
CROSSJOIN ( '#product', '#region' ),
"P@R", COMBINEVALUES("@",'#product'[product], '#region'[region]),
"sales", CALCULATE ( SUM ( Budget[target] ) ),
"IsSale", IF ( CALCULATE ( SUM ( Budget[target] ) ) > 0, "Yes", "No" )
)
简单点:
ADDCOLUMNS (
CROSSJOIN ( '#prodact', '#region' ),
"P@R", COMBINEVALUES("@",'#prodact'[product], '#region'[region])
)
我修改了 bridge table 的 DAX 代码,以便只留下连接所需的列。我需要计算的列添加为计算列。就是这样。纯属偶然,我在试验时发现了这一点。
为了玩桥牌 tables 我推荐这篇 Alberto Ferrari 的文章:https://www.sqlbi.com/articles/avoiding-circular-dependency-errors-in-dax/。它启发了我去解决这个问题。我从 Alberto 的文本中得到的是函数 VALUES 和 ALL 对桥 tables 没有好处。他提到了在 DAX tables 桥中使用 CALCULATE 函数的问题。该函数以某种方式被转换为 ALL 和 FILTER 函数的混合体。使用 DINSTINCT 和 ALLNOBLANKROW 等函数代替 VALUE 和 ALL。
工作 PBIX 文件。万岁!
当我尝试在维度#product(或#region)和#bridge table之间建立关系时,你能解释一下为什么我运行进入这个循环依赖的警告信息吗?产品 x 区域的笛卡尔?
我已通过单列 P@G 将#bridge 与销售和预算联系起来 是产品和地区的串联。
在此处下载文件:PBIX
一个快速而肮脏的解决方案是使用 VALUES
创建 #product
和 #region
的新版本。这可能不是最好的方法...
NewProduct = VALUES('#product'[product])
这个新表可以通过 1:* 关系链接到 #bridge
,因此可以用作仪表板上的切片器。
Alberto 在 sqlbi 博客上写过:Circular dependency sqlbi blog
解决方法很简单。不要在 DAX 桥 tables 中使用 CALCULATE 函数。而是稍后将所有这些列添加到与 计算列 相同的 table。
我更改了桥的原始代码 table 是:
ADDCOLUMNS (
CROSSJOIN ( '#product', '#region' ),
"P@R", COMBINEVALUES("@",'#product'[product], '#region'[region]),
"sales", CALCULATE ( SUM ( Budget[target] ) ),
"IsSale", IF ( CALCULATE ( SUM ( Budget[target] ) ) > 0, "Yes", "No" )
)
简单点:
ADDCOLUMNS (
CROSSJOIN ( '#prodact', '#region' ),
"P@R", COMBINEVALUES("@",'#prodact'[product], '#region'[region])
)
我修改了 bridge table 的 DAX 代码,以便只留下连接所需的列。我需要计算的列添加为计算列。就是这样。纯属偶然,我在试验时发现了这一点。
为了玩桥牌 tables 我推荐这篇 Alberto Ferrari 的文章:https://www.sqlbi.com/articles/avoiding-circular-dependency-errors-in-dax/。它启发了我去解决这个问题。我从 Alberto 的文本中得到的是函数 VALUES 和 ALL 对桥 tables 没有好处。他提到了在 DAX tables 桥中使用 CALCULATE 函数的问题。该函数以某种方式被转换为 ALL 和 FILTER 函数的混合体。使用 DINSTINCT 和 ALLNOBLANKROW 等函数代替 VALUE 和 ALL。
工作 PBIX 文件。万岁!