PowerBI генерирует запрос SQL, который слишком глубоко вложен.Как исправить? - PullRequest
0 голосов
/ 26 февраля 2019

В PowerBI Query Builder я создаю следующий запрос:

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 слишком сложным.

Предложения?

Спасибо, DC

1 Ответ

0 голосов
/ 26 февраля 2019

Попробуйте:

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

или даже

Importances = Table.Combine(ImportanceTables[Data])

, если столбцы одинаковы в разных таблицах.

Table.Combine() принимает список таблиц первымаргумент.

Однако, если количество таблиц слишком велико, вы можете столкнуться с другими проблемами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...