Как использовать временные таблицы SQL в Power BI - PullRequest
1 голос
/ 13 мая 2019

Я создаю отчет Power BI, который использует набор временных таблиц SQL в качестве источника.Я хотел бы предоставить пользователю возможность выбрать месяц из среза даты, и на основе этого выбора в отчете будут показаны действительные данные AS на эту дату.

SQL позволяет это с помощью системных версий таблиц, которыеразрешить запросы, такие как

SELECT * from table FOR SYSTEM_TIME BETWEEN 'date1' and 'date2'

, которые возвращали бы все допустимые значения в таблице, как если бы запрос выполнялся между этими датами.

Я не смог найти никакой документации о том, как работатьс временными таблицами в Power BI.

Как лучше всего это сделать в Power BI?

Заранее благодарен за помощь

1 Ответ

0 голосов
/ 15 мая 2019

Я только что сделал это недавно. @RADO правильно; Для режима импорта у вас есть строки для каждой даты (или месяца, в вашем случае) в таблице Power BI. Вся работа в SQL.

Во-первых, я создал встроенную (-able) табличную функцию, которая принимает datetime2 для предложения SYSTEM_TIME AS OF и возвращает необходимый результирующий набор с соединениями in по мере необходимости.

SELECT 
    header.*, 
    detail.*
FROM header FOR SYSTEM_TIME AS OF @utcTimeStamp AS header
LEFT JOIN detail FOR SYSTEM_TIME AS OF @utcTimeStamp AS detail ON detail.header_id = header.id ;

Вам необходимо настроить @utcTimeStamp, чтобы он соответствовал вашему значению даты или месяца.

--- Ajust to match your time period datatype
DECLARE @utcTimeStamp datetime2(3) = DATEADD(ms, -1, DATEADD(DAY, 1, CAST(@date AS datetime2(3)))) AT TIME ZONE 'Eastern Standard Time' AT TIME ZONE 'UTC';

Затем я создал представление для перекрестного применения функции к необходимым датам.

Когда я обнаружил, что запрос к представлению занял много времени, я создал таблицу кэширования и задание агента SQL для вставки результатов с последней даты по вчерашний день (во время, которое гарантирует, что вчерашний день закончился во всех наших часовых поясах) , Если вам нужны только результаты за месяц, вам, вероятно, не понадобится этот шаг.

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