首页 > 解决方案 > 另一个列值等于 FALSE 的 Max Date 仅不是 TRUE

问题描述

I have a table

emp_id    Visit Date     non_billable    
 1         5/2/2021       FALSE
 1         5/5/2021       FALSE
 1         5/6/2021       TRUE

尝试了类似的东西:

Measure =
VAR LatestDate =
    CALCULATE ( MAX ( 'Table1'[visit_date] ), ALL ( 'Table1' ) )
RETURN
    ( ( 'Table1'[non_billable] ) = FALSE )

试图找到 visit_date 的最大日期,其中 non_billable = FALSE 所以对于 emp_id = 1 最大日期将是 2021 年 5 月 5 日而不是 2021 年 5 月 6 日

标签: sql-server-2012

解决方案


您可以使用如下所示的窗口功能。

使用case表达式检查non_billable=FALSE

max(case when non_billable = 'FALSE' then visit_date end) over (partition by empid)

推荐阅读