MDX在多个维度上最后非空

时间:2016-08-25 19:27:51

标签: ssas mdx cube

如果有人可以帮助我,我会非常感激 问题。我有以下事实表:

+---------+--------+-----------+----------+------------+---------------+-------------+----------------+
| EntryNo | ItemNo | CompanyId | BranchId | LocationId | ValuationDate | ValuatedQty | ValuatedAmount |
+=========+========+===========+==========+============+===============+=============+================+
| 1       | Item1  | 1         | 1        | 1          | 2016-03-01    | 0           | 0              |
+---------+--------+-----------+----------+------------+---------------+-------------+----------------+
| 2       | Item1  | 1         | 2        | 1          | 2016-03-01    | 4           | 400            |
+---------+--------+-----------+----------+------------+---------------+-------------+----------------+
| 3       | Item1  | 1         | 1        | 1          | 2016-03-02    | 10          | 1000           |
+---------+--------+-----------+----------+------------+---------------+-------------+----------------+
| 4       | Item2  | 1         | 1        | 2          | 2016-03-02    | 4           | 200            |
+---------+--------+-----------+----------+------------+---------------+-------------+----------------+
| 5       | Item2  | 2         | 2        | 2          | 2016-03-02    | 6           | 300            |
+---------+--------+-----------+----------+------------+---------------+-------------+----------------+
| 6       | Item1  | 2         | 2        | 1          | 2016-03-03    | 0           | 0              |
+---------+--------+-----------+----------+------------+---------------+-------------+----------------+
| 7       | Item3  | 1         | 2        | 3          | 2016-03-03    | 0           | 0              |
+---------+--------+-----------+----------+------------+---------------+-------------+----------------+
| 8       | Item1  | 2         | 2        | 3          | 2016-03-03    | 9           | 450            |
+---------+--------+-----------+----------+------------+---------------+-------------+----------------+

有两种措施代表"积压过多"特定日期的物品。 是否可以创建允许切片数据的计算成员 在所有链接的维度(项目,公司等)?我猜LastNonEmpty agregration 除了在标准版中没有它之外,它在这里很有用。

鉴于该示例,结果应如下:

公司:

+---------+-------------+----------------+
| Company | ValuatedQty | ValuatedAmount |
+=========+=============+================+
| 1       | 14          | 1200           |
+---------+-------------+----------------+
| 2       | 15          | 750            |
+---------+-------------+----------------+

按日期:

+------------+-------------+----------------+
| Date       | ValuatedQty | ValuatedAmount |
+============+=============+================+
| 2016-03-01 | 4           | 400            |
+------------+-------------+----------------+
| 2016-03-02 | 16          | 1300           |
+------------+-------------+----------------+
| 2016-03-03 | 9           | 450            |
+------------+-------------+----------------+

按项目:

+-------+-------------+----------------+
| Item  | ValuatedQty | ValuatedAmount |
+=======+=============+================+
| Item1 | 9           | 450            |
+-------+-------------+----------------+
| Item2 | 6           | 300            |
+-------+-------------+----------------+
| Item3 | 0           | 0              |
+-------+-------------+----------------+

1 个答案:

答案 0 :(得分:1)

您需要考虑的两个功能是:

尾巴:https://msdn.microsoft.com/en-us/library/ms146056.aspx

Bottomcount:https://msdn.microsoft.com/en-us/library/ms144864.aspx

所以使用Tail可能会出现以下情况:

WITH SET [LastYearPerSubCat] AS
GENERATE(
  [Product].[Product Categories].[SubCategory].members AS S,
  S.CURRENTMEMBER
  *
  TAIL(
    NONEMPTY(
       [Date].[Calendar Year].[Calendar Year].MEMBERS,
       S.CURRENTMEMBER
    )
  )
)
SELECT  
   [Measures].[Reseller Gross Profit]  ON 0  
   ,[LastYearPerSubCat] ON 1
FROM [Adventure Works];