我试图在powerbi上做这个,但我想它只是基本的SQL
我想在powerBi中导入我的数据,但是用一些id过滤它。我们来看这个例子吧。我有一些公司的数据库(表1)。每个compay都有建筑物(table2),每个建筑物都有雇员(table3)。 我想导入三张桌子,但仅限于一家公司(OnePowerBi是关于一家公司,永远不会更多)。请注意,每个表都有父表的外键。我的架构在powerBI中运行良好
我尝试在高级选项中进行SQL查询(关于功能BI,你可以在选择哪个表导入之前做一些SQL)但是如果我这样做:
select * from companies where idcomp=1
它只会导入公司表。 我想导入所有表的所有数据,如果这些数据链接到选定的公司ID,但保留结构而不是在"请求中获取所有数据"或者" table",作为内部联接会做。我该怎么办?
答案 0 :(得分:6)
这个答案是基于我对这个问题的理解。如果此解决方案无法满足您的需求,我建议您更新问题以澄清您的问题和所需结果。
另外,我提前为这个答案的长度道歉;我不知道您对Power BI的专业水平,我想确保涵盖我所采取的每一步。
注意 - 我使用的是通过Windows应用商店提供的最新版本的Power BI Desktop。如果我拍摄的任何操作或我发布的图片与您的Power BI应用程序不一致,请确保您使用的是最新版本。
0)首先,我创建了一个包含三个表和一些数据的示例SQL结构。我运行的SQL代码可以找到here。
1)在Power BI中,点击获取数据 - > SQL Server
2)在此输入您的SQL服务器和数据库名称(我使用的是本地数据库,因此是“。”)。
3)仅选择公司表,然后点击修改...
......像这样进口。
4)点击管理参数 - >新参数。
5)填写表格,如下所示。
6)返回公司查询,点击idcomp
列的下拉箭头,然后转到数字过滤器 - >等于...
7)在弹出框中,单击第一个条件的下拉箭头并将其切换到参数。由于只有一个参数,因此应自动填写。单击“确定...”
......得到这个。
8)右键单击“公司”查询,然后单击“复制”。这是第二次,所以你有原始查询和两个副本。
9)返回原始查询,右键单击“建筑物”列,然后选择“删除”。
10)右键单击Companies(2)查询并选择重命名。将此第二个查询命名为Buildings。
11)在“建筑物”查询中,右键单击“建筑物”列,然后选择“删除其他列”。
12)单击“建筑物”列上的展开箭头按钮,然后取消选择除idbuild和BuildingName之外的所有内容(如下所示)。
13)右键单击Companies(3)查询并选择重命名。将此第三个查询命名为Employees。
14)在Employees查询中,右键单击Buildings列并选择Remove Other Columns。
15)点击“建筑物”列上的展开箭头按钮,然后取消选择除员工以外的所有内容(如下所示)。
12)单击Employees列上的扩展箭头按钮,然后取消选择除idemp,FirstName和LastName之外的所有内容(如下所示)。
13)点击关闭&应用
14)要检查数据,请制作一些表,并查看是否只加载了公司1的信息。
15)要更改加载的公司,请点击首页 - >编辑查询。
16)点击CompanyID(1)查询并将当前值更改为2.
17)点击关闭&应用并注意表格更新为仅显示公司2的信息。