我有以下两个表Rec和DD,它们没有任何关系:
具有两个字段的表Rec:
Date col1
------- -----
1/1/2019 1
12/12/2018 2
15/5/2019 3
1/1/2019 4
12/12/2018 5
15/5/2019 6
具有两个字段的表DD:
Date Flag
------- -----
1/1/2019 true
12/12/2018 false
15/5/2019 false
我想找出Rec [col1]的和,其中Rec [Date] = DD [Date]和DD [Flag]为TRUE。此布尔型字段为TRUE时,应该只有一个斜率。
我在想类似下面的内容,但不确定如何完成它:
calculate(
SUM(Rec[col1])
, filter(Rec, Rec[Date] = { date from DD where Flag is TRUE }
)
)
也尝试了以下方法,但效果不佳:
var sd= CALCULATE(max(dd[date]), filter(DD, dd[Flag] = TRUE()))
return
calculate(
SUM(Rec[col1])
, filter(Rec, Rec[Date] = sd
)
)
编辑1:
我应该提到Flag是一项措施:
Flag = if( max(DD[Date]) = SELECTEDVALUE(SlicerV[Date]),
True,
FALSE
)
编辑2
我正在使用通过切片器选择的日期来给我所需的日期。
答案 0 :(得分:0)
我找到了解决此问题的方法。 我创建了一个MEASURE来代替CALCULATED列,它可以像
一样简单Measure = sum(rec(col1]))
这会自动应用FILTER CONTEXT。
因此,我们吸取了一个教训:“首先,不是尝试计算列,而是尝试找出是否可以通过度量来完成”。