MDX使用多个日期维度

时间:2015-08-28 07:26:31

标签: mdx mondrian

我想要做的是生成一份报告,其中包含(合同)收益和损失的概述。例如:

Year | contract_gains | contract_losses
_______________________________________
2015 |             10 |               2 
2016 |             15 |               4

显示收益非常简单,因为我可以用开始期计算不同的合约(它是度量值的聚合器)。

SELECT
  {[contract_start_date].[year].MEMBERS} 
    ON ROWS,
  {[Measures].[value]}
    ON COLUMNS
FROM Cube

单独显示损失也很容易,因为我可以对第二个日期维度做同样的事情。

SELECT
  {[contract_end_date].[year].MEMBERS} 
    ON ROWS,
  {[Measures].[value]}
    ON COLUMNS
FROM Cube

但我想要做的是生成一个包含单个报告中的两个值的报告。可悲的是,我不知道如何做到这一点。

1 个答案:

答案 0 :(得分:0)

有点慢的方法,逐个细胞。这对你有用吗?

WITH MEMBER [Measures].contract_losses AS
    (
    GENERATE 
            (
        [contract_start_date].[year].CURRENTMEMBER,
        FILTER
            (
              [contract_end_date].[year].MEMBERS,
              CStr([contract_start_date].[year].CURRENTMEMBER.MEMBER_VALUE) = CStr([contract_end_date].[year].CURRENTMEMBER.MEMBER_VALUE)
            )
             ).ITEM(0)
        ,
        [Measures].[value]
    )

MEMBER [Measures].contract_gains AS
[Measures].[value]

SELECT
  NON EMPTY {[contract_start_date].[year].MEMBERS} 
    ON ROWS,
  {[Measures].contract_gains, [Measures].contract_losses}
    ON COLUMNS
FROM [Cube]