【问题标题】:Using MDX How to create Dynamic Report with parameters使用 MDX 如何创建带参数的动态报告
【发布时间】:2015-07-03 02:25:20
【问题描述】:

以下是我的 MDX,它在 SQL Server 环境中完美执行。现在,我想使用 SSRS 创建一个动态报告,它可以通过从参数中进行选择来为我提供不同年份的结果。我创建了一个名为“FY”的参数我想通过这个参数传递年度值,这就是为什么我将这个 MDX 作为表达式传递并得到类似“Query(1,385) Parser: The Syntax for 'MEMBER' is wrong ”。我不知道我在哪里做错了?提前致谢

 "WITH                                                                              "+
 "MEMBER [Total] AS                                                                 "+
 "SUM({[Measures].[July],[Measures].[August],[Measures].[September],                "+
 "[Measures].[October], [Measures].[November],                                      "+
"[Measures].[December],[Measures].[January],[Measures].[February],                  "+
"[Measures].[March],[Measures].[April],                                             "+
"[Measures].[May],[Measures].[June]}, [Dim Account].[Account Type].currentmember),  "+
"MEMBER [Percent] AS                                                                "+
"Total/SUM({[Measures].[July],[Measures].[August],[Measures].[September],           "+
"[Measures].[October], [Measures].[November],                                       "+
"[Measures].[December],[Measures].[January],[Measures].[February],                  "+
"[Measures].[March],[Measures].[April],                                             "+
"[Measures].[May],[Measures].[June]}, [Dim Account].[Account Type].[Income]),       "+
"MEMBER [Dim Account].[Account Type].[Gross Profit] AS                              "+
"  [Dim Account].[Account Type].[Income] -                                          "+
"[Dim Account].[Account Type].[Cost of Sales],                                      "+
"MEMBER [Dim Account].[Account Type].[Operating Profit] AS                          "+
"  [Dim Account].[Account Type].[Gross Profit] -                                    "+
"[Dim Account].[Account Type].[Expenses],                                           "+
"MEMBER [Dim Account].[Account Type].[Net Profit] AS                                "+
"  [Dim Account].[Account Type].[Operating Profit] +                                "+
"[Dim Account].[Account Type].[Other Income] -                                      "+
"[Dim Account].[Account Type].[Other Expense],                                      "+
"MEMBER [Dim Account].[Account Type].[EBITDA] AS                                    "+
"  [Dim Account].[Account Type].[Net Profit] +                                      "+
"[Dim Account].[HierarchyAccount].[Account Activity].                               "+
"&[Profit and Loss]&[Expenses]&[Interest] +                                         "+
"[Dim Account].[HierarchyAccount].[Account Activity].                               "+
"&[Profit and Loss]&[Cost of Sales]&[Depreciation]+                                 "+
"[Dim Account].[HierarchyAccount].[Account Activity].                               "+
"&[Profit and Loss]&[Expenses]&[Depreciation]+                                      "+
"[Dim Account].[HierarchyAccount].[Account Activity].                               "+
"&[Profit and Loss]&[Expenses]&[Amortisation],                                      "+
"SELECT {[Measures].[July],[Measures].[August],[Measures].[September],              "+
"[Measures].[October], [Measures].[November],                                       "+
"[Measures].[December],[Measures].[January],[Measures].[February],                  "+
"[Measures].[March],[Measures].[April],                                             "+
"[Measures].[May],[Measures].[June], Total, [Percent]}  ON COLUMNS,                 "+
" {                                                                                 "+
"   [Dim Account].[Account Type].&[Profit and Loss]&[Income],                       "+
"   [Dim Account].[Account Type].&[Profit and Loss]&[Cost of Sales],                "+
"[Dim Account].[Account Type].[Gross Profit],                                       "+
"   [Dim Account].[Account Type].&[Profit and Loss]&[Expenses],                     "+
"[Dim Account].[Account Type].[Operating Profit],                                   "+
"   [Dim Account].[Account Type].&[Profit and Loss]&[Other Income],                 "+
"   [Dim Account].[Account Type].&[Profit and Loss]&[Other Expense],                "+
"[Dim Account].[Account Type].[Net Profit],                                         "+
"[Dim Account].[Account Type].[EBITDA]} ON ROWS                                     "+
"FROM [DSV_IncomeStmt]                                                              "+
"where [Dim Yearto Date].[Fiscal Year].&["+Parameters!FY.Value+"]   "

【问题讨论】:

  • 您应该在数据集中拥有 MDX,该数据集应该在 tablix 中使用。你持有的 FY 参数是多少?请举个例子。

标签: parameters mdx ssrs-2012


【解决方案1】:

除了每个成员末尾的“,”之外,表达式非常完美。例如,查看 MEMBER 语句的末尾 a , 是否存在,必须从每个 MEMBER 计算中消除

除此之外,一切都很完美。

"WITH                                                                               "+
 "MEMBER [Total] AS                                                                 "+
 "SUM({[Measures].[July],[Measures].[August],[Measures].[September],                "+
 "[Measures].[October], [Measures].[November],                                      "+
"[Measures].[December],[Measures].[January],[Measures].[February],                  "+
"[Measures].[March],[Measures].[April],                                             "+
"[Measures].[May],[Measures].[June]}, [Dim Account].[Account Type].currentmember)   "+

【讨论】:

    【解决方案2】:

    使用公式代替查询脚本:

        ="SELECT [Measures].[July]  ON COLUMNS, 
     [Dim Account].[Account Type].&[Profit and Loss]&[Income] ON ROWS
    FROM [DSV_IncomeStmt]
    where [Dim Yearto Date].[Fiscal Year].&["+param+"]"    
    

    【讨论】:

    • 我已经编辑了我的问题。顺便说一句,我尝试过并遇到语法错误,请再次查看我的问题。谢谢
    • 您是否确保您的查询在 ssrs 之外工作?非常奇怪的语法:[Dim Account].[Account Type].&[Profit and Loss]&[Cost of Sales]。它指向什么?
    【解决方案3】:

    顺便说一句 - 在每行的开头添加空格 - 目前您正在制作一个非常大的字符串,其中包含很多空格。

    在每行的开头创建一个空格是一种更好的方法:

    " WITH"+
    " MEMBER [Total] AS"+                                                                 
    " SUM({[Measures].[July],[Measures].[August],[Measures].[September],"+                 
    " [Measures].[October], [Measures].[November],"+                                       
    " [Measures].[December],[Measures].[January],[Measures].[February],"+                  
    " [Measures].[March],[Measures].[April],"+                                             
    " [Measures].[May],[Measures].[June]}, [Dim Account].[Account Type].currentmember)"+ 
    " MEMBER [Percent] AS"+ 
    ...
    ...                                                               
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多