Reporting services 如何在SSAS中使用MDX检索会计月的月号?

Reporting services 如何在SSAS中使用MDX检索会计月的月号?,reporting-services,sql-server-2012,ssas,mdx,Reporting Services,Sql Server 2012,Ssas,Mdx,我想计算用户提供的月份期间内的平均交付YTD数量。如何获取会计月号。我尝试引入一个新属性“财政月数”,但它返回“所有期间”的值,因此在我的计算中变得毫无用处。你知道我该怎么得到月数吗。我希望避免硬编码数据:) 您可以通过MEMBER\u键属性获得所需的大部分内容: WITH MEMBER [Measures].[k] AS [Date].[Calendar].CurrentMember.Member_Key MEMBER [Measures].[yearNum] AS

我想计算用户提供的月份期间内的
平均交付YTD数量
。如何获取会计月号。我尝试引入一个新属性“财政月数”,但它返回“所有期间”的值,因此在我的计算中变得毫无用处。你知道我该怎么得到月数吗。我希望避免硬编码数据:)


您可以通过
MEMBER\u键
属性获得所需的大部分内容:

WITH 
  MEMBER [Measures].[k] AS 
    [Date].[Calendar].CurrentMember.Member_Key 
  MEMBER [Measures].[yearNum] AS 
    Fix([Measures].[k] / 10000) 
  MEMBER [Measures].[monthNum] AS 
    Fix(([Measures].[k] - Fix([Measures].[k] / 10000) * 10000) / 100) 
  MEMBER [Measures].[dayNum] AS 
    Fix([Measures].[k] - Fix([Measures].[k] / 100) * 100) 
  MEMBER [Measures].[backTogetherAsDate!!] AS 
    Dateserial
    (
      [Measures].[yearNum]
     ,[Measures].[monthNum]
     ,[Measures].[dayNum]
    ) 
   ,format_string = 'dd mmm yyyy' 
SELECT 
  {
    [Measures].[k]
   ,[Measures].[yearNum]
   ,[Measures].[monthNum]
   ,[Measures].[dayNum]
   ,[Measures].[backTogetherAsDate!!]
  } ON 0
 ,Tail([Date].[Calendar].[Date]) ON 1
FROM [Adventure Works];
结果如下:


当你说月数时,我假设你的意思是说,一月是1,二月是2,等等?可以将
成员密钥解构为其组成部分。您的会员密钥是什么格式的?YYYYMMDD那么今天是20150318?谢谢你的回复。。这很有帮助。。但是有什么办法可以让我拿到财政月。我可以尝试一种切换情况,在这种情况下,我可以检查月数是否大于6,然后减少6,否则添加6。但是有没有更好的方法来实现这一点呢?:)
WITH 
  MEMBER [Measures].[k] AS 
    [Date].[Calendar].CurrentMember.Member_Key 
  MEMBER [Measures].[yearNum] AS 
    Fix([Measures].[k] / 10000) 
  MEMBER [Measures].[monthNum] AS 
    Fix(([Measures].[k] - Fix([Measures].[k] / 10000) * 10000) / 100) 
  MEMBER [Measures].[dayNum] AS 
    Fix([Measures].[k] - Fix([Measures].[k] / 100) * 100) 
  MEMBER [Measures].[backTogetherAsDate!!] AS 
    Dateserial
    (
      [Measures].[yearNum]
     ,[Measures].[monthNum]
     ,[Measures].[dayNum]
    ) 
   ,format_string = 'dd mmm yyyy' 
SELECT 
  {
    [Measures].[k]
   ,[Measures].[yearNum]
   ,[Measures].[monthNum]
   ,[Measures].[dayNum]
   ,[Measures].[backTogetherAsDate!!]
  } ON 0
 ,Tail([Date].[Calendar].[Date]) ON 1
FROM [Adventure Works];