SSRS:如何使用参数使用mdx查询的平均函数

时间:2017-10-31 06:40:37

标签: reporting-services ssas mdx olap-cube

这是我的MDX查询:

SELECT 
  NON EMPTY 
    {[Measures].[Price]} ON COLUMNS
 ,NON EMPTY 
    {
        [Dim Date].[Date Key].[Date Key].ALLMEMBERS*
        [Dim Date].[Year].[Year].ALLMEMBERS*
        [Dim Instrument].[Instrument Code].[Instrument Code].ALLMEMBERS*
        [Dim TP Folio].[P Folio Code].[P Folio Code].ALLMEMBERS*
        [Dim Market Price].[Date].[Date].ALLMEMBERS
    }
  DIMENSION PROPERTIES 
    MEMBER_CAPTION
   ,MEMBER_VALUE
   ,MEMBER_UNIQUE_NAME
   ON ROWS
FROM 
(
  SELECT 
    StrToSet
    (@DimTPFolioPFolioCode
     ,CONSTRAINED
    ) ON COLUMNS
  FROM 
  (
    SELECT 
      StrToSet
      (@DimInstrumentInstrumentCode
       ,CONSTRAINED
      ) ON COLUMNS
    FROM 
    (
      SELECT 
        StrToSet
        (@DimDateYear
         ,CONSTRAINED
        ) ON COLUMNS
      FROM [DSV_SIAPDW]
    )
  )
)
CELL PROPERTIES 
  VALUE
 ,BACK_COLOR
 ,FORE_COLOR
 ,FORMATTED_VALUE
 ,FORMAT_STRING
 ,FONT_NAME
 ,FONT_SIZE
 ,FONT_FLAGS;

我有3个参数@DimDateYear,@ DimInstrumentInstrumentCode和@DimTPFolioPFolioCode,然后我想显示[Measures]的平均值。[Price]每年,但我不知道如何获取AVERAGE值来自[措施]。[价格]有3个参数。有人可以帮帮我吗?我是Mdx Query的新手。

1 个答案:

答案 0 :(得分:0)

以下是您可以在AdvWrks中使用的示例:

WITH 
  MEMBER [Measures].avgOverAllYears AS 
    Avg
    (
      [Date].[Calendar].[Calendar Year].MEMBERS
     ,[Measures].[Amount]
    ) 
SELECT 
  {
    [Measures].[Amount]
   ,[Measures].avgOverAllYears
  } ON 0
 ,[Date].[Calendar].[Calendar Year] ON 1
FROM [Adventure Works];

以上结果如下:

enter image description here

您可以看到我使用 WITH 子句创建的其他列为我们提供了所有年份的平均值。