首页 文章

DAX中具有多列的条件

提问于
浏览
0

我可以以多种方式在DAX中过滤多列吗?

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

EVALUATE
(
    CALCULATETABLE
    (
        SUMMARIZE
        (
            'Sales',
            'Sales'[MaxDatum],
            'Sales'[MinDatum]
        ),
        INT('Sales'[MaxDatum] - 'Sales'[MinDatum]) < 300            
    )
)

所以它失败了这个错误:

表达式包含多个列,但在用作表过滤器表达式的True / False表达式中只能使用一个列 .

我尝试了这样的查询的另一个构造,但在这种情况下,我不能重用计算的成员 .

EVALUATE
(
    CALCULATETABLE
    (
        SUMMARIZE
        (
            'Sales',
            'Sales'[MaxDatum],
            'Sales'[MinDatum],
            "DIFF", INT('Sales'[MinDatum] - 'Sales'[MaxDatum]) 
        ),
        [DIFF] < 300        
    )
)

可以在DAX查询中以某种方式执行此操作吗?

谢谢你的帮助

1 回答

  • 1

    试试这个:

    EVALUATE
     (
        FILTER (
            ADDCOLUMNS ( Sales, "Diff", 1 * ( Sales[MaxDatum] - Sales[MinDatum] ) ),
            [Diff] < 300
        )
    )
    

    如果您使用的是SSAS 2016,Excel 2016或Power BI,则可以使用 DATEDIFF 函数,这是一种更可靠的计算时间增量的方法 .

    如果这有帮助,请告诉我 .

相关问题