这有效:
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]
从我拥有的Adventure Works版本中返回以下内容:
如果我注释掉HAVING [Measures].[CurrentDay]<>null
行,则会发生这种情况:
是否有另一种方法可以在不使用null
的情况下消除CurrentDay
HAVING
行?
我尝试使用EXISTING
但没有取得任何成功:
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
{ EXISTING [Date].[Calendar].[Date] }
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]
答案 0 :(得分:1)
您可以重新定义您的指标:
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]