我如何计算一段时间内/没有销售的日子

时间:2014-09-10 08:53:49

标签: mdx

如何计算一段时间内销售/不销售的日期。

我在下面定义了一个MDX查询:

SELECT { [Measures].[Sales], [Measures].[Amount] } ON COLUMNS
NONEMPTY({ [Dim Customer].[Customer ID].[Customer ID].ALLMEMBERS * 
           [Time].[Month].CHILDREN
}) DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM [MyCube]

结果显示每个客户和月份客户在相应月份中的销售额和金额。

CustomID / Month / Sales / Amount:
1 / 2013 01 / 123 / 2234:
1 / 2013 02 / 2 / 95:
1 / 2013 03 / 212 / 11111:
2 / 2013 01 / 122 / 2121:
2 / 2013 02 / 231 / 3333:

现在我需要一个计数器/列,显示没有销售的月份的天数值。

CustomID / Month / Sales / Amount / DaysNoSale:
1 / 2013 01 / 123 / 2234 / 3:
1 / 2013 02 / 2 / 95 / 26:
1 / 2013 03 / 212 / 11111 / 0:
2 / 2013 01 / 122 / 2121 / 0:
2 / 2013 02 / 231 / 3333 / 0:

在立方体中,我们每天都有详细信息,因此可以显示每天的销售数量。 在没有销售的日子里,这个数字是0.

有谁知道如何解决这个问题 谢谢前进

1 个答案:

答案 0 :(得分:0)

假设您的Day属性名为[Time].[Day],您可以使用:

WITH Member Measures.[Days No Sale] AS
     Filter([Time].[Day].[Day].Members * { [Time].[Month].CurrentMember },
            ([Measures].[Sales], [Dim Customer].[Customer ID].CurrentMember) = 0
           ).Count
SELECT { [Measures].[Sales], [Measures].[Amount], Measures.[Days No Sale] }
       ON COLUMNS,
       NONEMPTY({ [Dim Customer].[Customer ID].[Customer ID].ALLMEMBERS * 
                [Time].[Month].CHILDREN
               })
       DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME
       ON ROWS
  FROM [MyCube]

[Time].[Day].[Day].Members * { [Time].[Month].CurrentMember }是多维数据集中所有日期与行的当前月份的叉积。由于Analysis Services自动存在功能,这只返回非空元组,即。即这个月每天都有一个元组,如e。 G。包含2014年9月10日日期列和2013年7月月份列的时间维度表中没有记录。 I. e。维度中的跨产品不是Analysis Services中的真正交叉产品。

然后Filter方法将这些限制为当前客户ID没有销售的那些,最后Count只计算这些。