首页 > 解决方案 > Power BI 将 sql 查询转换为筛选器

问题描述

我想知道这在 Power BI 中是否可行,我对此非常陌生,我正在尝试将 sql 查询如何转换为 power bi 报告。

SELECT
    expiresDate,
    Name,
    Addr,
    ValidFrom,
    ValidTo,
    ChildName,
    ChildValidFrom,
    ChildValidTo,
    RecValidFrom,
    RecValidTo
FROM Table
WHERE expiresDate Between <date1> and <date2>
AND <Date3> BETWEEN ValidFrom AND ValidTo
AND <Date3> BETWEEN ValidFrom AND ValidTo
AND <Date3> BETWEEN ValidFrom AND ValidTo

简要说明。报告提前3个月。因此,8 月的报告是针对 9 月 <date1 = 01/09/2021) 和 10 月 (date2 = 31/10/2021) 的数据。但是,数据可能每天都在变化。所以这取决于 Date3,它可能是八月的任何一天。

我创建了一个表,它是一个日历,并具有从特定日期计算开始和结束日期的附加列。我只是无法弄清楚如何将其与没有 WHERE 的查询的数据集相关联。然后我希望过滤器能够确定结果。最终,正如我目前所拥有的那样,它会得到一个日期,如前所述,它将从开始日期和结束日期获取日期。或者使用要显示的记录的最新迭代按范围显示。

例如,表格的第一部分

过期日期 帐号 姓名 地址 有效自 有效 子名
2021-10-01 1 罗伯特 1 这里 2019-01-01 2021-08-16 奶酪
2021-10-01 1 罗伯特 1 这里 2019-01-01 2021-08-16 大黄
2021-10-01 1 鲍勃 1 这里 2021-08-17 2020-08-23 大黄

表的后半部分

ChildValidFrom ChildValidTo RecValidFrom RecValidTo
2019-01-01 2021-08-10 2019-19-01 2020-12-31
2021-08-11 2021-08-23 2021-01-01 2021-08-15
2021-08-11 2021-08-23 2021-08-16 2020-08-23

该表是一个将数据压缩为唯一记录以及更改发生时间的视图。数据集要低得多,记录数从 10m 到 54k。

要求是所有 To - From 日期都在指定的日期内。要么是作为过滤器输入的日历中的日期......要么是今天。

该报告将显示 expiryDate 大于该日期的 1 个日历月且小于 3 个日历月的所有记录。我只是使用 8 月的日期作为示例,所以这将是从 01/09/2021 到 31/10/2021。

如果我使用日期 2021-08-01。

在我的示例中,AccNo 1 有 3 个结果,但应该只显示 1 个。

如果我使用日期 2021-08-01,将显示第一行。
如果我使用日期 2021-08-12,则应显示第二行。
如果我使用日期 2021-08-23,则应显示第三行。

因为使用的日期应该在所有 3 个标准的日期范围之间

ValidFrom - ChildValidTo
ChildValidFrom - ChildValidTo
RecValidFrom - RecValidTo

任何帮助将不胜感激。这非常令人沮丧,但我可以理解,如果这可能会为用户提供一个很好的视觉效果,以便根据输入日期检查他们的数据。

非常感谢

标签: powerbi

解决方案


推荐阅读