这个问题似乎很容易解决,但是我一直没有办法解决,也没有找到类似的问题。
我正在使用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",是一个函数的名字?
我想我找到了。我添加了 'Date'[YearValue]
(注意表名前后的单引号)。这似乎是可行的。我想这是因为这是一个保留字。
EDIT: 在开放式查询的例子中,语法是
''''Date''''[YearValue],