【问题标题】:how to use FILTER in a DAX Query如何在 DAX 查询中使用 FILTER
【发布时间】:2019-11-04 10:49:11
【问题描述】:

我的数据如下所示:

Machine Name | Producing Status | Time To | Time From 
A | ON | 3:00:00 | 4:10:00
B | ON | 4:15:00 | 5:10:00
B | OFF | 5:00:00 | 5:15:00

基本上我想编写一个 DAX 查询,我可以在其中过滤生产状态为 ON 并计算以秒为单位的时间差。我已经设法完成了第二部分并提出了查询 ABS(DATEDIFF('datasetname'[col_name],'datasetname'[col_2_name],SECOND) 但是我不知道在哪里准确过滤出生产状态!

【问题讨论】:

  • 哦!没想到!谢谢! :)

标签: sql powerbi dax


【解决方案1】:

您需要将度量值包装在 CALCULATE 函数中,以便添加过滤器上下文

所以应该是CALCULATE(measure, FILTER(filter logic))

对于 FILTER,您要传入表名,然后是逻辑

FILTER('datasetname', 'datasetname'[Producing Status] = "ON")

应该是这样的:

Measure 2 =
VAR dif =
    DATEDIFF ( MAXX ( 'Table', [Time From] ), MAXX ( 'Table', [Time To] ), SECOND )
RETURN
    CALCULATE ( dif, FILTER ( 'Table', 'Table'[Producing Status] = "ON" ) )

您还可以使用 IF 语句创建计算列

Column = IF('Table'[Producing Status] = "ON",  DATEDIFF('Table'[Time From], 'Table'[Time To], SECOND), BLANK())

希望有帮助

【讨论】:

  • 嗨!我之前尝试过这个,但是在获取数据集的列时出现错误。它只显示之前创建的 MEASURES 选项。
  • 更新为使用 MAXX 函数来遍历行,如果OK,请接受
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多