【发布时间】:2015-08-24 15:54:48
【问题描述】:
我试图执行这个查询,但我不明白它有什么问题。
WITH MEMBER Time.T1 AS 'SUM([Time].&[TY].&[0]:[Time].&[TY].&[11])'
MEMBER Time.T2 AS 'SUM([Time].&[TY].&[0]:[Time].&[TY].&[11])'
MEMBER Measures.Col1 AS '(Scenario.&[PO], [T1], [GNAm])'
MEMBER Measures.Col2 AS '(Scenario.&[ACFC], [T2], [GNAm])'
MEMBER Measures.Diff AS '[Col2] - [Col1]'
MEMBER Measures.Perc AS 'IIF([Col1] = 0, [Col1], [Diff] / [Col1])', FORMAT_STRING = '#0.00%'
SELECT {[Col1], [Col2], [Diff], [Perc]} on Columns, Descendants([Account].[Account].[Expenses]) on Rows
FROM DS_GNA
WHERE (&[44026-90],&[010000])
得到错误信息:
Error: Query (3, 8) Parser: The syntax for '&' is incorrect.
【问题讨论】:
-
您想用 WHERE 子句实现什么目标?我怀疑这是一个明确的问题。
-
与号 (&) 字符在 MDX 中用于区分成员键和成员名称。为什么你有
[Time].&[TY].&[0]?我假设 TY 是您的时间维度中的一个属性?我希望看到[Time].[TY].&[0]。一次从一个计算成员开始,并确保它有效,然后添加下一个。与一次性完成所有工作并希望最好的结果相比,您会更快地找出问题所在。
标签: sql-server ssis ssas mdx