如何在我的MDX查询中计算YTD天数

如何在我的MDX查询中计算YTD天数,mdx,ssas-2008,Mdx,Ssas 2008,我有一个MDX查询,它完美地为我的每个设备提供了YTD金额,但我希望在计算YTD金额时考虑这些YTD天数 如何在查询中实现这些YTD天数计数 WITH MEMBER [Settlement Date].[Calendar].[CalendarYTD] AS Aggregate ( YTD ( [Settlement Date].[Calendar].[Settlement Calendar Month].&[201412]

我有一个MDX查询,它完美地为我的每个设备提供了YTD金额,但我希望在计算YTD金额时考虑这些YTD天数

如何在查询中实现这些YTD天数计数

WITH 
  MEMBER [Settlement Date].[Calendar].[CalendarYTD] AS 
    Aggregate
    (
      YTD
      (
        [Settlement Date].[Calendar].[Settlement Calendar Month].&[201412]
      )
    ) 
SELECT 
  [Settlement Date].[Calendar].[CalendarYTD] ON COLUMNS
 ,NON EMPTY 
    [Device].[DeviceID].Children ON ROWS
FROM [cube1]
WHERE 
  [Measures].[amount];

在进行更改时,您可以使用以下AW MDX查询,其结果与我的上述查询相同:

WITH 
  MEMBER [Date].[Calendar].[CalendarYTD] AS 
    Aggregate(YTD([Date].[Calendar].[Month].[March 2015])) 
SELECT 
  [Date].[Calendar].[CalendarYTD] ON COLUMNS
 ,[Product].[Category].Children ON ROWS
FROM [Adventure Works]
WHERE 
  [Measures].[Order Quantity];

这是一个小小的交换,但希望朝着您需要的方向前进:

WITH 
  MEMBER [Date].[Calendar].[CalendarYTD] AS 
    Aggregate(YTD([Date].[Calendar].[Month].[March 2007])) 
  MEMBER [Measures].[DaysCompleteCurrYear] AS 
    Descendants
    (
      YTD([Date].[Calendar].[Month].[March 2007])
     ,[Date].[Calendar].[Date]
     ,SELF
    ).Count 
SELECT 
  {
    [Measures].[DaysCompleteCurrYear]
   ,[Measures].[Order Quantity]
  } ON COLUMNS
 ,[Product].[Category].Children ON ROWS
FROM [Adventure Works]
WHERE 
  [Date].[Calendar].[CalendarYTD];
如果我们将目标月份放入单个成员集中,则家庭关系将被保留,并且我们可以在自定义度量中使用该集合:

WITH 
  SET [targMth] AS 
    {[Date].[Calendar].[Month].[March 2007]} 
  MEMBER [Date].[Calendar].[CalendarYTD] AS 
    Aggregate(YTD([targMth].Item(0).Item(0))) 
  MEMBER [Measures].[DaysCompleteCurrYear] AS 
    Descendants
    (
      YTD([targMth].Item(0).Item(0))
     ,[Date].[Calendar].[Date]
     ,SELF
    ).Count 
SELECT 
  {
    [Measures].[DaysCompleteCurrYear]
   ,[Measures].[Order Quantity]
  } ON COLUMNS
 ,[Product].[Category].Children ON ROWS
FROM [Adventure Works]
WHERE 
  [Date].[Calendar].[CalendarYTD];