【问题标题】:What´s wrong with this MDX query Error: Query (3, 8)?这个 MDX 查询有什么问题 Error: Query (3, 8)?
【发布时间】: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


【解决方案1】:

基本上,以下只是重复您的问题的 cmets。我已经完全排除了您的 WHERE 子句,最好先看看它是否无异常运行。正如 TTeeple 所提到的,我刚刚在键值之前添加了 & 符号:

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];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-12
    • 2011-09-29
    • 2011-10-13
    • 1970-01-01
    • 2010-09-07
    • 2010-10-04
    相关资源
    最近更新 更多