让 datediff 在 dax studio 中添加的列上工作时遇到问题

问题描述 投票:0回答:1

我们将从 csv 导入的父表称为“a_generic_list”。 我添加了 2 个不同的 addcolumns,计算日期列采用“yyyy-mm-dd”格式: 第一天和第二天。

第 2 天的示例:

addcolumns(...
                     "day2",
                        FORMAT (
                            CALCULATE (
                                MAXX ( 'a_generic_list', [Day] ),
                                FILTER (
                                    'a_generic_list',
                                           'a_generic_list'[Column1] = [filter1]
                                        && 'a_generic_list'[Column2] = [filter2]
                                        && 'a_generic_list'[Column3] = [filter3]
                                        && 'a_generic_list'[Column4] = [filter4]
                                        && 'a_generic_list'[Column5] = [filter5]
                                )
                            ),
                            "yyyy-mm-dd"
                        )
                ), ...

此计算正确,并且该表有一堆嵌套的添加列。

我试图添加另一列来减去两个日期(day1 和 day2)以获得天数单位的差异,但我收到了奇怪的错误。

第1天 第2天 差异日期(以天为单位)
2022-01-01 2022-01-03 2
2022-05-05
2023-02-03 2023-02-07 4
2022-05-05
2024-01-05 2024-01-06 1

我将它放在嵌套的“addcolumns”函数中,该函数与查询的“定义”部分下的其他变量列配合得很好。如果我尝试进行 diffdate 的两列中的任何一列中有空格,我还使用 not(isblank()) 作为停止计算的方法。代码如下:

DEFINE
    VAR index_table =
....
    .... add column(
     "datediff_days",
                        CALCULATE (
                            IF (
                                (
                                    NOT ( ISBLANK ( [day1] ) )
                                        && NOT ( ISBLANK ( [day2] ) )
                                ),
                                DATEDIFF ( [day1], [day2], DAY ),
                                blank
                            )
                        )
                )

    ......

evaluate 
index_table

DAX Studio 中的查询格式很好,但我不断收到奇怪的错误:

"the syntax for ')' is incorrect"

但据我所知,我在正确的位置完成了所有括号,这是遵循同一个表中其他添加的列零问题的模式。如果没有添加此列,表将成功评估。有什么想法吗?

powerbi dax datediff daxstudio
1个回答
0
投票

在你的

IF(...)
中,应该是
BLANK()
而不是
blank

© www.soinside.com 2019 - 2024. All rights reserved.