从数据库获取我想要的数据但保留结构

Low*_*ast 2 sql sql-server powerbi

我试图在powerbi上做这个,但我想这只是基本的SQL

我想在powerBi中导入我的数据,但是用一些id过滤它.我们来看看这个例子吧.我有一些公司的数据库(表1).每个compay都有建筑物(table2),每个建筑物都有雇员(table3).我想导入三张桌子,但仅限于一家公司(OnePowerBi是关于一家公司,永远不会更多).请注意,每个表都有父表的外键.我的架构在powerBI中运行良好

我尝试在高级选项中进行SQL查询(关于功能BI,你可以在选择哪个表导入之前做一些SQL)但是如果我这样做:

select * from companies where idcomp=1
Run Code Online (Sandbox Code Playgroud)

它只会导入公司表.如果数据链接到所选公司ID,我想导入所有表的所有数据,但是保留结构而不是将所有数据都放在"请求"或"表"中,就像内部联接一样.我应该怎么做?

Joe*_*lyn 7

这个答案是基于我对这个问题的理解.如果此解决方案无法满足您的需求,我建议您更新问题以澄清您的问题和所需结果.

另外,我提前为这个答案的长度道歉; 我不知道您对Power BI的专业水平,我想确保涵盖我所采取的每一步.

- 我使用的是Windows Store中提供的最新版本的Power BI Desktop.如果我拍摄的任何操作或我发布的图片与您的Power BI应用程序不一致,请确保您使用的是最新版本.

0)首先,我创建了一个包含三个表和一些数据的示例SQL结构.我可以在这里找到我运行的SQL代码.

1)在Power BI中,单击"获取数据" - >"SQL Server"

获取数据

2)在这里输入你的SQL服务器和数据库名称(我使用的是本地数据库,因此是".").

SQL信息

3)仅选择Companies表,然后单击Edit ...

选择公司表

......像这样进口.

进口公司表

4)单击Manage Parameters - > New Parameter.

新参数

5)填写如下所示的表格.

参数配置

6)返回公司查询,单击idcomp列的下拉箭头,然后转到数字过滤器 - >等于...

过滤行

7)在弹出框中,单击第一个条件的下拉箭头并将其切换到参数.由于只有一个参数,因此应自动填写.单击"确定"...

过滤配置

......得到这个.

过滤结果

8)右键单击Companies查询,然后单击Duplicate.这是第二次,所以你有原始查询和两个副本.

重复查询

9)返回原始查询,右键单击"建筑物"列,然后选择"删除".

删除公司中的额外列

10)右键单击Companies(2)查询并选择Rename.将此第二个查询命名为Buildings.

重命名第二个查询

11)在"建筑物"查询中,右键单击"建筑物"列,然后选择"删除其他列".

删除建筑物中的额外列

12)单击Buildings列上的扩展箭头按钮,取消选择除idbuild和BuildingName之外的所有内容(如下所示).

展开建筑物列

13)右键单击Companies(3)查询并选择Rename.将此第三个查询命名为Employees.

重命名第三个查询

14)在Employees查询中,右键单击Buildings列,然后选择Remove Other Columns.

删除员工中的额外列

15)单击Buildings列上的扩展箭头按钮,取消选择除Employees之外的所有内容(如下所示).

展开员工的建筑物栏目

12)单击Employees列上的扩展箭头按钮,取消选择除idemp,FirstName和LastName之外的所有内容(如下所示).

展开员工列

13)单击"关闭并应用".

关闭并申请

14)要检查数据,请制作几个表格,看看只加载了公司1的信息.

表

15)要更改加载的公司,请单击主页 - >编辑查询.

编辑查询

16)单击CompanyID(1)查询并将当前值更改为2.

编辑参数

17)单击关闭并应用,注意表更新为仅显示公司2的信息.

更新了表格