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



我是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'

您已接近目标。正如Alexis所说,这个DAX表达式返回一个表,而不是像度量值那样返回一个值。因此,请使用CALCULATABLE而不是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])

最新更新