1

我正在做一个 DAX 查询,能够检索在某个日期 (COIDate) 之前安装的产品列表,并且这些产品具有特定的 ProductLine。但是,它多次返回相同的产品。

我想知道是否有办法,我确定有,写这个相同的查询,但指定,如果一个产品具有相同的ProductNumberSerialNumber,它是同一个产品,不能在结果中重复,所以它需要一种按(序列号,产品编号)或类似 DISTINCT 的分组。我的背景是SQL语言,所以这里需要的语法不同。我尝试了一个独特的,像这样:

EVALUATE 
    DISTINCT(
    SELECTCOLUMNS( 
     'Graphics Installed Base',
    "SerialNumber", 'Graphics Installed Base'[SerialNumber], -- 0
    "ProductNumber", 'Graphics Installed Base'[ProductNumber] -- 1
    )
)  

它有效。现在我还需要添加这些过滤器:

 'Graphics Installed Base'[ProductLine] = "TW",
 'Graphics Installed Base'[COIDate] <> BLANK (), format('Graphics Installed Base'[COIDate],"YYYY/MM/DD") <= "2018/12/12"

这是我的查询,我正在尝试根据我上面所说的进行修改:

EVALUATE
    CALCULATETABLE ( SELECTCOLUMNS (
        'Graphics Installed Base',
         "SerialNumber", 'Graphics Installed Base'[SerialNumber], -- 0
         "ProductNumber", 'Graphics Installed Base'[ProductNumber], -- 1
         "COIDate", 'Graphics Installed Base'[COIDate], -- 2
         "ProductFullName", 'Graphics Installed Base'[ProductFullName], -- 3
        ),
     'Graphics Installed Base'[ProductLine] = "TW",
     'Graphics Installed Base'[COIDate] <> BLANK (), format('Graphics Installed Base'[COIDate],"YYYY/MM/DD") <= "2018/12/12"
 

编辑: 我添加的内容:带有 DISTINCT 和过滤器的查询,但它错过了所有其他字段。显然会有另一种方式。

EVALUATE
        CALCULATETABLE( 
        DISTINCT( 
            SELECTCOLUMNS( 
             'Graphics Installed Base',
            "SerialNumber", 'Graphics Installed Base'[SerialNumber], -- 0
            "ProductNumber", 'Graphics Installed Base'[ProductNumber] -- 1
            )
    )
    , 'Graphics Installed Base'[ProductLine] = "TW",
        'Graphics Installed Base'[COIDate] <> BLANK (),
        format('Graphics Installed Base'[COIDate],"YYYY/MM/DD") <= "2018/12/12")

帮助我在 Select 中添加其他字段!谢谢 !

4

0 回答 0