首页 > 解决方案 > 基于 Excel Query 从 SQL Server 拉取数据

问题描述

我有一个 PowerBI 报告,我目前正在处理我想使用 Excel 文件中的现有查询从 SQL Server 上的数据库中提取特定数据的地方。

示例:
Excel 文件具有名为“Order”的列,并且限制为 60 行。

SQL server 有一个“Order”和“Sales”列,有 400 万行。

我想查询 SQL 服务器以仅检索与我的 excel 文件中的 60 行匹配的行。

我觉得这可能很简单,我忽略了它。

编辑

当我开始收集更多数据并追加时,我忘记了将 Excel 文件更改为 Access 数据库。

我试图连接的两个表如下所示:

Access Database
ID  |Type  |OrderId  
1   | Sale | Order0001
2   | Sale | Order0002


SQL Server
OrderId  | Cost  |Sales  | StoreId
Order0001|  5.00 | 15.00 | 01
Order0002|  4.00 | 12.00 | 01

Access DB 有 67,000 行,SQL Server 有约 400 万行。他们共享 OrderId 列,当我查询 SQL Server 时,我只想从 Access 数据库中获取 67,000 个订单。

标签: sql-serverexcelpowerbi

解决方案


我认为你需要这个“技巧”。您将需要修改 m 代码(右键单击您的表格):

https://www.biinsight.com/quick-tips-how-to-filter-a-column-by-a-column-from-a-different-query-in-power-query/ https://www. aaronjgrossman.com/2020/01/25/filter-table-by-another-power-query/

基础是:

#"Filtered Rows" = Table.SelectRows(#"PREVIOUS_STEP", each 
List.Contains(#"REFERENCED_TABLE"[REFERENCED_COLUMN], [COLUMN_TO_BE_FILTERED]))

这类似于 SQL:

SELECT productsubcategorykey          
   , productsubcategoryalternatekey 
   , [Subcategory Name]
FROM   DimProductSubcategory
WHERE  [Subcategory Name] IN (SELECT [Approved Subcategory] 
                          FROM [Product Subcategory Lookup])

推荐阅读