В настоящее время я работаю с PowerQuery и хотел бы понять, возможно ли свертывание запроса при использовании хранимой процедуры SQL Server в качестве источника данных.
В частности, я выполняю следующий запрос:
EXEC [my_procedure] '20240831','20240831'
В этом случае хранимая процедура имеет два параметра: @fromdate
и @todate
. Моя цель — обеспечить применение свертывания запроса к этому сценарию.
Не могли бы вы сообщить, поддерживается ли свертывание запросов в этом контексте, и если да, то как я могу его эффективно реализовать?
Если мой вопрос неверен, пожалуйста, дайте мне знать.
Спасибо за вашу помощь.
Power Query не поддерживает свертывание запроса для хранимой процедуры в SQL Server, поскольку выполнение хранимой процедуры является операцией «черного ящика» с точки зрения Power Query. После выполнения хранимой процедуры Power Query рассматривает ее как статический набор результатов и не может отправить дополнительные преобразования обратно в источник.
В качестве обходного пути вы можете написать SQL-запрос непосредственно в Power Query, чтобы он мог свернуть этот запрос обратно на SQL Server, если после этого не будут применены никакие преобразования, нарушающие свертывание:
SELECT *
FROM yourtable
WHERE date_column BETWEEN '20240831' AND '20240831'
https://learn.microsoft.com/en-us/power-bi/guidance/power-query-folding
https://www.reddit.com/r/PowerBI/comments/wemnd7/query_folding_and_sql_stored_procs/?rdt=39254