如果选择的不完整,MDX 选择上一季度

MDX choose previous quarter if selected one is not complete

我正在使用 MDX 在 SSRS 中创建参数列表,因此我只想列出已完成的季度。它的工作方式是我们有 "records" 在特定日期提交。如果提交的最后日期不等于季度结束日期,则将参数列表限制为最后一个季度。

最后一次提交是在 10 月,也就是第 3 季度,但由于 10 月不是本季度末,我们希望它显示第 2 季度之前的列表。这是我的下拉列表 MDX

WITH 
  MEMBER [Measures].[ParameterCaption] AS 
    [Date - Submitted].[Submitted   Year-Quarter].CurrentMember.Member_Caption 
  MEMBER [Measures].[ParameterValue] AS 
    [Date - Discharge].[Submitted Year-Quarter].CurrentMember.UniqueName 
  MEMBER [Measures].[ParameterLevel] AS 
    [Date - Submitted].[Submitted Year-Quarter].CurrentMember.Level.Ordinal 
SELECT 
  {
    [Measures].[ParameterCaption]
   ,[Measures].[ParameterValue]
   ,[Measures].[ParameterLevel]
  } ON COLUMNS
 ,NonEmpty
  (
    [Date - Submitted].[Submitted Year-Quarter].Children
   ,[Measures].[Records Count]
  ) ON ROWS
FROM [Records Cube]
WHERE 
  [Records].[Submission Status].&[Submitted];

关于我可以添加什么的任何想法,以便它可以检查它是否是本季度末,如果不是,就包括[提交的上一个年度季度

您已经创建了两个度量并检查它们是否非空:

    WITH 

 Member [Measures].[MonthID] as
    [Date - Submitted].[Submitted Year-Month].CurrentMember.Properties('Key')

 Member [Measures].[MonthNumber] as
    Right([Date - Submitted].[Submitted Year-Month].CurrentMember.Properties('Key'),2)

 Member [Measures].[IsLastMonth] as
    IIF(
        [Measures].[MonthNumber] / 3 - cint([Measures].[MonthNumber] / 3) = 0
        and [Measures].[Records Count],
        1,
        Null
    )    

SELECT 
  {
    [Measures].[MonthID]
   ,[Measures].[MonthNumber]
   ,[Measures].[IsLastMonth]
  } ON COLUMNS
 ,{
    NULL:
    Order(
        NonEmpty(
            [Date - Submitted].[Submitted Year-Month].[Month].Members,
            [Measures].[IsLastMonth]
        ),
    [Measures].[MonthID],
    BDESC
    ).Item(0)
 }  ON ROWS
FROM [Records Cube]
WHERE 
  [Records].[Submission Status].&[Submitted];