在DAX查询中按年份过滤 - 表立方体。

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

这个问题似乎很容易解决,但是我一直没有办法解决,也没有找到类似的问题。

我正在使用openquery从一个表格立方体中选择数据。我想按年份过滤。

 DECLARE @GetData VARCHAR(MAX)
,@Customer AS varchar(4) = '6300'

SELECT @GetData = 

'SELECT *
FROM OpenQuery (ASLS,
''
EVALUATE 
SUMMARIZECOLUMNS
(
Customer[CustomerNbr],
FILTER(VALUES(Date[Year]), Date[Year] = 2019), 
FILTER(VALUES(Customer[CustomerNbr]), Customer[CustomerNbr] = "' + @Customer +'"),
"TotalSales", [TotalSales]
)'')'


EXEC(@GetData)

这是我得到的错误。

OLE DB供应商 "MSOLAP "为链接服务器 "ASLS "返回消息 "查询(6, 19)'[年份]'的语法不正确。

它只对客户过滤器有效,但对年份无效。最终,我会想要多个年份,我相信这是用 "AND "完成的,但我甚至可以得到一个年份。

我试着用单引号&双引号、括号等来包装年份,但还是在寻找答案或下一步研究的方向。

TIA

编辑:我的错误会不会是由于表名为 "Date",是一个函数的名字?

dax ssas-tabular
1个回答
0
投票

我想我找到了。我添加了 'Date'[YearValue] (注意表名前后的单引号)。这似乎是可行的。我想这是因为这是一个保留字。

EDIT: 在开放式查询的例子中,语法是

''''Date''''[YearValue],
© www.soinside.com 2019 - 2024. All rights reserved.