代码之家  ›  专栏  ›  技术社区  ›  Nazer Mohamed

上个月MDX销售总额

mdx
  •  1
  • Nazer Mohamed  · 技术社区  · 9 年前

    下面的查询工作正常。

    With Member PyMonthSales as
        SUM(PARALLELPERIOD([Date].[Calendar].[Month], 1),[Measures].[Internet Sales Amount])    
    
    select 
    {PyMonthSales} on Columns,
    [Date].[Calendar].[Month] on Rows
    FROM
    (
    Select {
    [Date].[Calendar].[Month].&[2006]&[5], [Date].[Calendar].[Month].&[2006]&[4]
    } on Columns
    From    [Adventure Works]
    )
    

    但我只想要一个总数。因此,我删除了上述查询中的行

    With Member PyMonthSales as
        SUM(PARALLELPERIOD([Date].[Calendar].[Month], 1),[Measures].[Internet Sales Amount])    
    
    select 
    {PyMonthSales} on Columns
    FROM
    (
    Select {
    [Date].[Calendar].[Month].&[2006]&[5], [Date].[Calendar].[Month].&[2006]&[4]
    } on Columns
    From    [Adventure Works]
    )
    

    这就是问题的开始。返回null。任何帮助都会很好。 谢谢你的时间。

    纳粹

    1 回复  |  直到 9 年前
        1
  •  0
  •   whytheq    9 年前

    WITH 
      MEMBER [Measures].x AS 
        Aggregate
        (
          Generate
          (
            {
              [Date].[Calendar].[Month].&[2006]&[5]
             ,[Date].[Calendar].[Month].&[2006]&[4]
            }
           ,{
              ParallelPeriod
              (
                [Date].[Calendar].[Month]
               ,1
               ,[Date].[Calendar].CurrentMember
              )
            }
          )
         ,[Measures].[Internet Sales Amount]
        ) 
    SELECT 
      x ON 0
    FROM [Adventure Works];
    

    我一直忘记的一件事是 ParallelPeriod 节-如果没有这些,则会引发异常,因为Generate始终希望 SET 作为其第二个论点。