我正在构建一个使用一组SQL临时表作为源的Power BI报告。我想为用户提供从日期切片机中选择一个月的机会,并根据该选择,报告将显示有效的数据。
sql允许使用系统版本的表,该表允许查询
SELECT * from table FOR SYSTEM_TIME BETWEEN 'date1' and 'date2'
将回馈表中的所有有效值,好像查询是在这些日期之间运行的。
我找不到有关如何使用Power BI中的临时表工作的任何文件。
在Power BI中这样做的最好方法是什么?
我最近刚刚这样做。@rado是正确的;对于导入模式,您在电源BI表中的每个日期(或一个月(都有行。所有工作均在SQL中。
首先,我创建了一个inline(-able(表值函数,该函数接受system_time的dateTime2,并根据需要返回所需的结果集。
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代理作业,以插入从最后一个日期到昨天的结果(在我们所有时区确保昨天结束的时候(。如果您只需要每月的结果,则可能不需要此步骤。