暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用SQL存储过程自定义设置PowerBI数据源

PowerBI Home 2021-08-19
2140

    大家好,今天和大家分享的是如何通过管理参数的调整自定义设置数据源。主要使用的方法是SQL Server的存储过程和PowerQuery的自定义函数和管理参数设置。首先,我们需要在SQL Server中先写好一段存储过程(本示例中定义为sp_getData),具体存储过程的写法参见本文下面代码示例部分。因为我们这个存储过程是带参数的,也就是我们需要动态传参给这个参数,从而动态获取不同条件的数据。例如,我们传@country='France',那么这时候我们执行这个存储过程返回的结果是只筛选了国家为France的数据集。然后,将定义好的存储过程sp_getData这个执行语句exec sp_getData 'France',复制到PowerBI的数据源处。注意:PowerBI连接的时候选择SQL Server数据源的方式,选择导入模式,选择高级,将执行语句复制到下面的窗口(见附图1),此时,你点击确认后,后台的数据将只包含France的数据。那么我们再通过PowerQuery的自定义函数替换掉France,使之成为动态的参数,共后面动态选择设置。


    接下来还需要准备一个国家清单,并将这个清单转成List之后最为参数的数据源。选择管理参数后,将这个国家清单的List作为值的来源即可。关闭并上载后,我们可以在转换数据的下拉中选择管理参数,选择不同的国家的数据之后数据源随之变化,这种方式当然可以和权限管理结合起来,如果识别到某员工是某个区域的人则返回这个区域的数据,也就是传参个存储过程,这样返回的数据就是改员工负责的地区的数据。以上方法仅作为管理数据源的一种方式供参考。


    CREATE PROCEDURE sp_getData 
    @country varchar(100)
    as
    begin
    select * from [Sales].[Orders] where shipcountry = @country
    end


    附图(1)


    附图(2)国家清单列表

    自定义函数,动态选择国家

      let 
      country =(c as text)=>
      let
      源 = Sql.Database("localhost", "TSQLV4", [Query="exec sp_getData '"& c &"'"])
      in

      in country

      管理参数设置

      自定义选择数据源

      大家有兴趣可以动手试试!

      文章转载自PowerBI Home,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论