用于选择两个给定日期之间的值的 DAX 查询

zam*_*zam 2 dax powerbi

我是 DAX 查询的新手,试图promotion_namepromotion该表的其他两列的两个日期之间的表中获取不同的列表。我已经为度量编写了以下 DAX 查询。但是,我收到错误。我确信查询不正确。我可以寻求帮助吗?

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

基本上我想在 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'
Run Code Online (Sandbox Code Playgroud)

Mar*_*Vos 5

你快到了。正如 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 )
    )
)
Run Code Online (Sandbox Code Playgroud)

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