我正在做一个 DAX 查询,能够检索在某个日期 (COIDate) 之前安装的产品列表,并且这些产品具有特定的 ProductLine。但是,它多次返回相同的产品。
我想知道是否有办法,我确定有,写这个相同的查询,但指定,如果一个产品具有相同的ProductNumber和SerialNumber,它是同一个产品,不能在结果中重复,所以它需要一种按(序列号,产品编号)或类似 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 中添加其他字段!谢谢 !