如何在Power Query / Power BI中使用M进行子查询

时间:2016-06-14 16:23:43

标签: sql-server oracle subquery powerbi powerquery

所以我有两个我正在处理的查询,一个来自Oracle DB和另一个SQL Server DB。我尝试通过Power Query使用PowerBI作为两者之间的交叉。由于Oracle DB的大小我在运行它时遇到问题,所以我的想法是使用一个查询作为另一个查询的子句/子查询来限制结果的数量。

基于MSFT的M语言的逻辑,我假设有一种方法可以对另一个人进行子查询,但我还没弄明白。有没有人对如何做到这一点有任何想法?

2 个答案:

答案 0 :(得分:1)

我学会做的是创建与两个躺着的数据集的连接,但不加载它们。然后您可以合并它们,但不要使用默认的Table.NestedJoin()

PQ生成后,将其更改为:

= Table.Join(dbo_SCADocument,{"VisitID"},VISIT_KEY,{"VisitID"})

同时删除尾随名称。原因是,它使查询折叠保持活跃。出于某种原因,Table.NestedJoin()会导致查询折叠。注意,如果除了连接之外的两个源中存在类似的字段,则它将失败。

它也带来了两个来源的所有内容,但这很容易改变。此外,您还需要关闭功能防火墙,因为这不允许您使用非敏感数据加入潜在的敏感数据。这是将您的隐私级别设置为忽略所有。

答案 1 :(得分:0)

我会尝试使用Merge命令。我更多的是UI人,所以我会点击Merge按钮。这将为Table.Join生成PQL语句

https://msdn.microsoft.com/en-us/library/mt260788.aspx

加入种类设置为内部会将输出限制为匹配的行。

我说尝试,因为您提出的查询设计可能会减慢您的查询速度,而不是改进它。我希望PQ能够针对2台服务器运行两个查询并下载所有数据,然后尝试加入内存。