【问题标题】:DAX query to select values between two given dateDAX 查询以选择两个给定日期之间的值
【发布时间】:2018-11-10 01:58:09
【问题描述】:

我是 DAX 查询的新手,并试图在来自该表的其他两列的两个日期之间从 promotion 表中获取 promotion_name 的不同列表。我已经编写了下面的 DAX 查询来衡量。但是,我收到一个错误。我确定查询不正确。我能得到一些帮助吗?

Measure = 
CALCULATE(VALUES(promotion[promotion_name]),
FILTER (ALL(promotion),
    promotion[start_date] >= DATE(1997,1,1) &&
    promotion[end_date] <= DATE(1997,12,31)))

基本上我想在 DAX 中实现这个 SQL 查询:

select promotion_name
from promotion
where start_date >= '1998-01-01 00:00:00' AND
        end_date <= '1998-12-31 00:00:00'

【问题讨论】:

  • 基本上我想在 DAX 中实现这个 SQL 查询:" Select Promotion_name from Promotion where start_date >= '1998-01-01 00:00:00' AND end_date
  • 度量只返回一个值,而不是列表或表格。你想用不同的列表做什么?
  • 感谢您的回复。但是我怎么能在 DAX 中生成它,如果它在 DAX 中是可能的,就像我们可以在 SQL 中那样。

标签: powerbi dax


【解决方案1】:

你快到了。正如 Alexis 所说,这个 DAX 表达式返回一个表,而不是像度量那样的单个值。所以使用 CALCULATETABLE 代替 CALCULATE。 FILTER 表达式中的 ALL 函数在这里不是必需的。所以在建模选项卡上的New Table 中试试这个:

Table =
CALCULATETABLE (
    VALUES ( promotion[promotion_name] ),
    FILTER (
        promotion,
        promotion[start_date] >= DATE ( 1997, 1, 1 )
            && promotion[end_date] <= DATE ( 1997, 12, 31 )
    )
)

请注意,VALUES ( promotion[promotion_name] ) 将返回不同的值。如果您需要所有重复值,则需要将VALUES ( promotion[promotion_name] ) 替换为SELECTCOLUMNS('promotion',"promotion_name",'promotion'[promotion_name])

【讨论】:

    猜你喜欢
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 2013-02-11
    相关资源
    最近更新 更多