Ssas 现有的相当于有

Ssas 现有的相当于有,ssas,mdx,ssms,Ssas,Mdx,Ssms,这项工作: WITH MEMBER [Measures].[CurrentDay] AS AGGREGATE( [Date].[Calendar].Currentmember, [Measures].[Reseller Sales Amount] ) MEMBER [Measures].[CurrentMonth] AS AGGREGATE( [Date]

这项工作:

WITH 
    MEMBER [Measures].[CurrentDay] AS
        AGGREGATE( 
            [Date].[Calendar].Currentmember,
            [Measures].[Reseller Sales Amount]
        )
    MEMBER [Measures].[CurrentMonth] AS
        AGGREGATE( 
            [Date].[Calendar].Currentmember.parent,
            [Measures].[Reseller Sales Amount]
        )
SELECT
    NON EMPTY 
    { [Measures].[CurrentDay],
        [Measures].[CurrentMonth] } 
    ON COLUMNS,
    NON EMPTY 
    { [Date].[Calendar].[Date] }
    HAVING [Measures].[CurrentDay]<>null //<<<<<<<<<<<<<<having line
    ON ROWS
From [Adventure Works]

编辑

要在SSMS中运行nsousa的解决方案,我需要如下嵌套
IIF

WITH 
    MEMBER [Measures].[CurrentDay] AS
        AGGREGATE( 
            [Date].[Calendar].Currentmember,
            [Measures].[Reseller Sales Amount]
        )
    MEMBER [Measures].[CurrentMonth] AS
        IIF(
            ISEMPTY([Measures].[CurrentDay]),
            NULL,
            AGGREGATE( 
                [Date].[Calendar].Currentmember.parent,
                [Measures].[Reseller Sales Amount]
                )
        )
SELECT
    NON EMPTY 
    { [Measures].[CurrentDay],
        [Measures].[CurrentMonth] } 
    ON COLUMNS,
    NON EMPTY 
    { [Date].[Calendar].[Date] }
    ON ROWS
From [Adventure Works]

您可以重新定义度量:

WITH
    MEMBER [Measure].[Not Null Reseller Sales Amount] AS
        IIF( IsEmpty( [Measures].[Reseller Sales Amount] ), 0, [Measures].[Reseller Sales Amount] )
    MEMBER [Measures].[CurrentDay] AS
        AGGREGATE( 
            [Date].[Calendar].Currentmember,
            [Measures].[Not Null Reseller Sales Amount]
        )
    MEMBER [Measures].[CurrentMonth] AS
        AGGREGATE( 
            [Date].[Calendar].Currentmember.parent,
            [Measures].[Not Null Reseller Sales Amount]
        )
SELECT
    NON EMPTY 
    { [Measures].[CurrentDay],
        [Measures].[CurrentMonth] } 
    ON COLUMNS,
    NON EMPTY 
    { [Date].[Calendar].[Date] }
    ON ROWS
From [Adventure Works]

+谢谢。在我的机器上出现这样的错误:“聚合函数不能用于度量维度中的计算成员”,这在查看解决方案的逻辑时似乎是有意义的
ISEMPTY
绝对是正确的前进方向-我建议去掉
[Measure].[notnull转销商销售额]
,然后嵌套一个
IIF(ISEMPTY(…
关于当前月的
聚合
…您是否应该添加另一个计算成员,这更多是个人喜好的问题。我希望有很多计算成员,并有一个更简单的select语句。在Mondrian(Pentaho的MDX实现)我可以使用计算成员进行聚合,这可能是您实现的一个限制。选择是相同的-我将向OP添加变量。我使用SQL Server的management studio并将添加此标记
WITH
    MEMBER [Measure].[Not Null Reseller Sales Amount] AS
        IIF( IsEmpty( [Measures].[Reseller Sales Amount] ), 0, [Measures].[Reseller Sales Amount] )
    MEMBER [Measures].[CurrentDay] AS
        AGGREGATE( 
            [Date].[Calendar].Currentmember,
            [Measures].[Not Null Reseller Sales Amount]
        )
    MEMBER [Measures].[CurrentMonth] AS
        AGGREGATE( 
            [Date].[Calendar].Currentmember.parent,
            [Measures].[Not Null Reseller Sales Amount]
        )
SELECT
    NON EMPTY 
    { [Measures].[CurrentDay],
        [Measures].[CurrentMonth] } 
    ON COLUMNS,
    NON EMPTY 
    { [Date].[Calendar].[Date] }
    ON ROWS
From [Adventure Works]