Filter DAX中具有多个列的条件

Filter DAX中具有多个列的条件,filter,dax,Filter,Dax,我可以用多列在DAX中进行过滤吗 我需要过滤器,两个日期之间的差异小于300天,如下所示 EVALUATE ( CALCULATETABLE ( SUMMARIZE ( 'Sales', 'Sales'[MaxDatum], 'Sales'[MinDatum] ), INT('Sales'[MaxDatum] - 'Sales'[MinDatum

我可以用多列在DAX中进行过滤吗

我需要过滤器,两个日期之间的差异小于300天,如下所示

EVALUATE
(
    CALCULATETABLE
    (
        SUMMARIZE
        (
            'Sales',
            'Sales'[MaxDatum],
            'Sales'[MinDatum]
        ),
        INT('Sales'[MaxDatum] - 'Sales'[MinDatum]) < 300            
    )
)
评估
(
可计算
(
总结
(
“销售”,
“销售”[MaxDatum],
“销售”[MinDatum]
),
INT('Sales'[MaxDatum]-'Sales'[MinDatum])<300
)
)
因此,它失败了,出现了以下错误:

表达式包含多列,但只能包含一列 在用作表筛选器的真/假表达式中使用 表情

我尝试了另一种类似这样的查询构造,但在这种情况下,我无法重用计算成员

EVALUATE
(
    CALCULATETABLE
    (
        SUMMARIZE
        (
            'Sales',
            'Sales'[MaxDatum],
            'Sales'[MinDatum],
            "DIFF", INT('Sales'[MinDatum] - 'Sales'[MaxDatum]) 
        ),
        [DIFF] < 300        
    )
)
评估
(
可计算
(
总结
(
“销售”,
“销售”[MaxDatum],
“销售”[MinDatum],
“DIFF”,INT('Sales'[MinDatum]-'Sales'[MaxDatum])
),
[DIFF]<300
)
)
可以在DAX查询中以某种方式执行此操作吗

感谢您的帮助

试试这个:

EVALUATE
 (
    FILTER (
        ADDCOLUMNS ( Sales, "Diff", 1 * ( Sales[MaxDatum] - Sales[MinDatum] ) ),
        [Diff] < 300
    )
)
评估
(
滤器(
ADDCOLUMNS(销售,“差异”,1*(销售[MaxDatum]-销售[MinDatum]),
[Diff]<300
)
)
如果您使用的是SSAS 2016、Excel 2016或Power BI,您可以使用
DATEDIFF
函数,这是一种更可靠的计算时间增量的方法


如果有帮助,请告诉我。

谢谢。这是正确的,但是为什么要将“1*”添加到该查询中?@Bushwacka,1*是一个隐式数据转换,基本上我将两个日期之间的差值转换为一个整数。您还可以使用
INT()
函数。