Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi Power BI查询中的变量_Powerbi_Powerquery - Fatal编程技术网

Powerbi Power BI查询中的变量

Powerbi Power BI查询中的变量,powerbi,powerquery,Powerbi,Powerquery,我有一个SQL查询来将数据输入Power BI。例如: select a,b,c,d from table1 where a in ('1111','2222','3333' etc.) 但是,变量“1111”、“2222”、“3333”等的列表每天都会更改,因此我希望在刷新数据之前更新SQL语句。这可能吗 理想情况下,我希望在本例中保留一个包含值列表的电子表格,以便在刷新之前,它将这些参数输入到该脚本中。 我遇到的另一个问题是,列表将具有不同的参数nr,因此最后一个变量需要不带逗号 我正在

我有一个SQL查询来将数据输入Power BI。例如:

select a,b,c,d from table1 
where a in ('1111','2222','3333' etc.)
但是,变量“1111”、“2222”、“3333”等的列表每天都会更改,因此我希望在刷新数据之前更新SQL语句。这可能吗

理想情况下,我希望在本例中保留一个包含值列表的电子表格,以便在刷新之前,它将这些参数输入到该脚本中。 我遇到的另一个问题是,列表将具有不同的参数nr,因此最后一个变量需要不带逗号

我正在考虑的另一个选择是运行脚本,而不使用'1111'、'2222'、'3333'等中的where a,然后用这些a的列表加载电子表格,并根据该列表过滤报告,但是这将是大量数据导入Power BI


这是我有史以来的第一篇文章,尽管我多年来一直在从Stackoverflow寻求帮助,所以希望一切都清楚。

我将创建一个新的查询,从您的电子表格中读取a值。我将Load To/Import Data选项设置为仅创建连接,以避免重复数据

然后在SQL查询中,我将删除where子句。这样一来,实际上根本不需要编写自定义SQL—只需从导航UI中选择表/视图即可

然后从table1查询中,我将添加一个合并查询步骤,使用连接类型:Inner连接到a列上的a值查询。结果行将仅是那些具有与当前SQL where子句类似的匹配列值的行


Power Query无法将其作为单个查询发送到SQL Server,因此它将首先选择表1中的所有行。但它仍然相当快速和高效。

我已经有一段时间没有使用Power BI了。然而,当你说变量“1111”、“2222”、“3333”等的列表时,你是指Power Query/M中的列表吗?如果是这样,您可以只使用Text.combinesmelist,,这将有效地将{1,2,3}转换为1,2,3。如果在每个列表项之前和之后都需要“转换”,可以尝试类似list.TransformsomeList、each“&Text.From&”,然后调用Text.Combine。所有这些都将为您提供一个连接字符串,然后您可以将其放入SQL查询中。谢谢您,Mike。我做这件事的方式略有不同。加载不带where子句的SQL。然后用列表加载电子表格并建立关系。最后,在报告级别取消筛选空白,以删除不匹配的行。工作正常,无需任何调整。下次我运行此报告时,只需单击“刷新”,它将加载新数据、电子表格并以相同的方式执行。