在Power Bi中使用SQL Server时态表获取月度数据

时间:2019-07-22 08:01:12

标签: sql-server powerbi sql-server-2016 sql-server-2017 powerbi-desktop

目标是准备一个Power BI报告,该报告将根据用户选择的月份年份提供历史数据。

要获取所有可用月份的数据,我正在尝试执行以下操作

SELECT * FROM Employee   
    FOR SYSTEM_TIME    
        AS OF <<End of month>>

我想对历史记录表中的每个月运行此查询,然后将它们全部合并到一个表中。

这样,我将能够让用户选择Power bi中的任何月份-年份,并根据选择过滤该联合表。

唯一的问题是,如何从时态表的历史记录表中检索所有可用的月份,以便我可以对其进行迭代并针对每个查询运行以上查询?

1 个答案:

答案 0 :(得分:1)

一种解决方案是创建一个视图(甚至运行select语句),该视图对所有日期进行硬编码并将它们合并在一起。

SELECT * FROM Employee 
FOR SYSTEM_TIME 
AS OF '2010-01-01'
UNION ALL
SELECT * FROM Employee 
FOR SYSTEM_TIME 
AS OF '2010-02-01'
UNION ALL
SELECT * FROM Employee 
FOR SYSTEM_TIME 
AS OF '2010-03-01'

这是“强力”方法。

可能可以在M(Power BI中的导入语言)中做一些更聪明的事情,但是我找不到很好的例子