DAX - 根据最新数据 运行 在日期维度 table 中创建滚动 "within last 7 days" TRUE/FALSE 列 table
DAX - Creating a rolling "within last 7 days" TRUE/FALSE column in Date Dimension table based on latest data run date in Fact table
我知道这应该非常简单,但无法弄清楚。我想在我的数据维度 table 中的 Power BI 中创建一个滚动的“过去 7 天内”TRUE/FALSE 列,以允许我将其用作其他计算的过滤器 - 这将基于最新数据 运行 我的 Fact table 中的日期(可以延迟到每天下午 运行,因此我不只是简单地使用 TODAY()
函数) .
我在创建列时尝试使用 DATEDIFF
函数,当我在我的事实 table 中测试它时它工作正常(因为 MAX 运行 日期是最后一个运行 中的日期 table)。但是,当引用我的日期维度 table 时,它为我提供了最新 运行 日期之前最多 7 天的所有内容的 TRUE 值,但也为最新 [=42] 之后的每个日期提供了 TRUE 值=] 日期。我的日期维度 table 有未来 5 年的日期,因此这是一个问题。
Rolling 7 Days = if (DATEDIFF('Fact Table'[Date], MAX('Fact Table'[Date]), DAY) <= 7, TRUE(), FALSE())
我如何重写它,以便它明确地给出从最新数据 运行 日期开始的最近 7 天的 TRUE
结果,以便我可以将其用作过滤器?
这还能写成度量吗?
提前致谢!
尝试使用两个条件而不是一个。
例如,
Rolling 7 Days =
VAR MaxFactDate = MAX ( 'Fact Table'[Date] )
RETURN
( dimDate[Date] > MaxFactDate - 7 ) && ( dimDate[Date] <= MaxFactDate )
我知道这应该非常简单,但无法弄清楚。我想在我的数据维度 table 中的 Power BI 中创建一个滚动的“过去 7 天内”TRUE/FALSE 列,以允许我将其用作其他计算的过滤器 - 这将基于最新数据 运行 我的 Fact table 中的日期(可以延迟到每天下午 运行,因此我不只是简单地使用 TODAY()
函数) .
我在创建列时尝试使用 DATEDIFF
函数,当我在我的事实 table 中测试它时它工作正常(因为 MAX 运行 日期是最后一个运行 中的日期 table)。但是,当引用我的日期维度 table 时,它为我提供了最新 运行 日期之前最多 7 天的所有内容的 TRUE 值,但也为最新 [=42] 之后的每个日期提供了 TRUE 值=] 日期。我的日期维度 table 有未来 5 年的日期,因此这是一个问题。
Rolling 7 Days = if (DATEDIFF('Fact Table'[Date], MAX('Fact Table'[Date]), DAY) <= 7, TRUE(), FALSE())
我如何重写它,以便它明确地给出从最新数据 运行 日期开始的最近 7 天的 TRUE
结果,以便我可以将其用作过滤器?
这还能写成度量吗?
提前致谢!
尝试使用两个条件而不是一个。
例如,
Rolling 7 Days =
VAR MaxFactDate = MAX ( 'Fact Table'[Date] )
RETURN
( dimDate[Date] > MaxFactDate - 7 ) && ( dimDate[Date] <= MaxFactDate )