mysql - 在 Power BI 中以 M 语言中的each 执行子查询

标签 mysql powerbi powerquery m

我正在将各种风格的 SQL 转换为 Power BI。我有以下查询/代码,我试图用 M 语法表示:

while($row = $result->fetch_assoc())
{
    $rate = SELECT CAD FROM ExchangeRate WHERE date<='" . $row['d'] . "' ORDER BY date DESC LIMIT 1
    $monthlySalesUSD += $daily/$rate;
}

基本上,它会查找一组特定交易的日期的汇率,然后将当天的销售数据除以当天的汇率。

在 Power BI 高级查询中,我定义了以下摘录:

    #"Added Custom1" = Table.AddColumn(#"Changed Type", "SalesUSD", each [Inserted Rounding] / List.First(Table.Column(Table.First(Table.SelectRows(Table.Sort(warehouse_ExchangeRate,{{"date", Order.Descending}}),each [date] <= #"Changed Type"[DATELASTFULFILLMENT])),"CAD"))),

#"Changed Type" 包含每日交易总额和日期。总计位于[Inserted Rounding] 中,日期位于[DATELASTFULFILLMENT] 中。所以基本上,对于 #"Changed Type" 中的每一行,我想获取日期,查找汇率,然后将销售额除以该汇率。我似乎无法得到的是如何从每个中的当前行中提取日期。

最佳答案

感谢MarcelBeug,我找到了答案为我指明正确的方向。我发现this post这让我发现你可以在添加列中执行 lambda 表达式。这给了我以下步骤:

#"Fixed Join" = Table.AddColumn(#"Inserted Date", "ExchangeRate",
        (Earlier) => Table.SelectRows(warehouse_ExchangeRate,
                     each [date] <= Earlier[Date])),
#"Expanded ExchangeRate" = Table.ExpandTableColumn(#"Fixed Join", "ExchangeRate", {"CAD"}, {"CAD"})

这为我提供了小于销售日期的最接近匹配,然后我可以将其划分为销售以给出美元值(value),然后从中选择我需要的列。

关于mysql - 在 Power BI 中以 M 语言中的each 执行子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43793050/

相关文章:

Excel Power Query - 通过比较两列来过滤行

mysql - 所有涉及特定表的 MySQL 查询都挂起

powerbi - 按总和对类别进行排名 (Power BI)

mysql - 我们想要将 PowerBI 连接到托管在外部服务器上的 mysql 数据库

powerbi - BI Designer 多对多关系

sql-server - 如何通过引用列位置而不是列名称来对 Power Query 编辑器中的列重新排序

excel - Power Query 中的计算

python - 定期重新运行相同查询时无法获取最新行

php - 使用 PHP 将数组值分配给增量变量以插入到 mysql 表中

mysql - Rmysql查询没有返回正确的值?