我是 DAX 查询的新手,试图promotion_name
从promotion
该表的其他两列的两个日期之间的表中获取不同的列表。我已经为度量编写了以下 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)
你快到了。正如 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])
。
归档时间: |
|
查看次数: |
11983 次 |
最近记录: |