Сценарий
:
Запуск листа XL с использованием одного powerquery для извлечения данных с сервера SQL.Полученный набор данных используется в двух подзапросах.Все три набора данных затем загружаются в сводные таблицы на листе XL.
цель:
Отправка запроса с использованием 2 параметров, извлеченных из листа XL, что уменьшает размервозвращенного набора данных.Сворачивание запроса обратно на SQL-сервер, а не фильтрация после получения в PQ.
описание проблемы:
, если я использую приведенную ниже конфигурацию для основногоquery:
let
dbQuery = "SELECT * FROM dbo.somequery",
Source = Sql.Database("<server>", "<database>", [Query=dbQuery])
in
Source
Это работает нормально и возвращает около 6500 строк почти мгновенно.
Следующая функция определена как 'GetRange' в PQ для получения значения ячейки:
(rangeName) =>
Excel.CurrentWorkbook(){[Name=rangeName]}[Content]{0}[Column1]
Два параметра извлекаются с использованием приведенного ниже синтаксиса для каждого:
= GetRange("<named cell>")
Если я теперь изменю dbQuery на:
dbQuery = "SELECT * FROM dbo.xlPAS_PivotOutput
WHERE parameter1=" & Text.From(parameter1) & " and parameter2=" & Text.From(parameter2),
Запрос компилируется, и результаты возвращаются, но Excel PQ занимает около 1-2 минут, чтобы на самом деле вернуть значение?Похоже, что простой поиск значений 2 ячеек и использование их в качестве входных параметров по какой-то причине требует огромных усилий?