首页 > 解决方案 > PowerBI 生成嵌套太深的 SQL 查询。怎么修?

问题描述

在 PowerBI 查询生成器中,我创建了以下查询:

let
    SV_DATA = Sql.Database("my.ip.add.ress", "SV_DATA", [CreateNavigationProperties=false]),
    ImportanceTables = Table.SelectRows(SV_DATA, each Text.EndsWith([Name], "_IMPORTANCE_RATINGS")),
    Importances = Table.Combine(ImportanceTables[Data])
in
    Importances

如您所见,该查询查找所有以结尾的表_IMPORTANCE_RATINGS并将它们组合成一个表。(这是必要的,因为有成千上万的*_IMPORTANCE_RATINGS表,它们会随着时间的推移而被添加和删除;因此我不能对它们进行硬编码)。

预览效果很好。

但是,当我尝试在报告中应用查询时,我从 SQL Server 收到以下错误:

无法将修改保存到服务器。返回的错误:'OLE DB 或 ODBC 错误:[DataSource.Error] Microsoft SQL:您的 SQL 语句的某些部分嵌套得太深。重写查询或将其分解为更小的查询......'。

但是,我看不出有任何方法可以简化我在 PowerBI 中的工作。似乎是 PowerBI 本身使 SQL 查询过于复杂。

建议?

谢谢,直流

标签: powerbipowerquery

解决方案


尝试这个:

Importances = Table.Combine(ImportanceTables[Data], {"PROG_ID", "RESPONSE_ID", "COMPOSITE", "PRACTICE_NUMBER", "IMPORTANCE_RATING", "CHANNEL", "BREAKOUT", "SOURCE"} )

甚至

Importances = Table.Combine(ImportanceTables[Data])

,如果表中的列是统一的。

Table.Combine()接受表列表作为第一个参数。

但是,如果您的表数太大,您可能会面临其他问题。


推荐阅读