MDX 函数 CURRENTMEMBER 失败,因为 'Date' 属性的坐标包含一个集合
The MDX function CURRENTMEMBER failed because the coordinate for the 'Date' attribute contains a set
我正在尝试 运行 这个查询:
select [Dim Date].[Date] on ROWS,
{[Measures].[Available Time Net],[Measures].[Logged On Time Net]} on columns
from [OTS Agent Time Net Data]
where {[Dim Date].[Date].&[08/01/2014]:[Dim Date].[Date].&[12/31/2014]}
我想获取 where
子句中存在的度量值,但我还想在行中显示日期。我一直收到错误消息。
您不能在一个轴上和切片器中使用相同的层次结构 ([Dim Date].[Date]) (MDX tutorial);我想使用子查询对你的例子来说没问题:
select
[Dim Date].[Date] on ROWS,
{[Measures].[Available Time Net],[Measures].[Logged On Time Net]} on columns
from (
select {[Dim Date].[Date].&[08/01/2014]:[Dim Date].[Date].&[12/31/2014]} on 0
from [OTS Agent Time Net Data]
)
希望对您有所帮助。
(编辑:使用命名集或使用轴中的切片器内容 - 查看其他响应 - 有点不同,因为请求在一定天数范围内过滤,但 select [Dim Date ].[Date] 不一定显示日期;例如可以是 [Dim Date].[Date])
层次结构的 'All'
我同意 Marc 的回答,这可能是最好的回答方式。但是还有另一种方法可以做到这一点,它不需要子选择,就是使用命名集。
with set DateRange AS
{[Dim Date].[Date].&[08/01/2014]:[Dim Date].[Date].&[12/31/2014]}
select NON EMPTY DateRange on ROWS,
{[Measures].[Available Time Net],[Measures].[Logged On Time Net]} on COLUMNS
from [OTS Agent Time Net Data]
编辑
根据您的要求,如果您还想按时间进行过滤,可以采用以下一种方法。将集合 DateRange
的定义替换为以下内容:
with set DateRange AS
EXISTS({[Dim Date].[Date].&[08/01/2014]:[Dim Date].[Date].&[12/31/2014]}
,[Dim Time].[Time].&[1930]
, "Time Net"
)
您需要在此处填写一些内容..
假设时间维度的层次结构为[Dim Time].[Time]
。请替换为真实姓名和会员格式(假设为&[1930]
另外,Time Net
是度量[Measures].[Available Time Net]
和[Measures].[Logged On Time Net]
所属的度量组名。再次,替换为原始名称。
为什么不直接将集合添加到 ROWS
?
SELECT
NON EMPTY
{
[Dim Date].[Date].&[08/01/2014] : [Dim Date].[Date].&[12/31/2014]
} ON ROWS
,{
[Measures].[Available Time Net]
,[Measures].[Logged On Time Net]
} ON COLUMNS
FROM [OTS Agent Time Net Data];
我正在尝试 运行 这个查询:
select [Dim Date].[Date] on ROWS,
{[Measures].[Available Time Net],[Measures].[Logged On Time Net]} on columns
from [OTS Agent Time Net Data]
where {[Dim Date].[Date].&[08/01/2014]:[Dim Date].[Date].&[12/31/2014]}
我想获取 where
子句中存在的度量值,但我还想在行中显示日期。我一直收到错误消息。
您不能在一个轴上和切片器中使用相同的层次结构 ([Dim Date].[Date]) (MDX tutorial);我想使用子查询对你的例子来说没问题:
select
[Dim Date].[Date] on ROWS,
{[Measures].[Available Time Net],[Measures].[Logged On Time Net]} on columns
from (
select {[Dim Date].[Date].&[08/01/2014]:[Dim Date].[Date].&[12/31/2014]} on 0
from [OTS Agent Time Net Data]
)
希望对您有所帮助。
(编辑:使用命名集或使用轴中的切片器内容 - 查看其他响应 - 有点不同,因为请求在一定天数范围内过滤,但 select [Dim Date ].[Date] 不一定显示日期;例如可以是 [Dim Date].[Date])
层次结构的 'All'我同意 Marc 的回答,这可能是最好的回答方式。但是还有另一种方法可以做到这一点,它不需要子选择,就是使用命名集。
with set DateRange AS
{[Dim Date].[Date].&[08/01/2014]:[Dim Date].[Date].&[12/31/2014]}
select NON EMPTY DateRange on ROWS,
{[Measures].[Available Time Net],[Measures].[Logged On Time Net]} on COLUMNS
from [OTS Agent Time Net Data]
编辑
根据您的要求,如果您还想按时间进行过滤,可以采用以下一种方法。将集合 DateRange
的定义替换为以下内容:
with set DateRange AS
EXISTS({[Dim Date].[Date].&[08/01/2014]:[Dim Date].[Date].&[12/31/2014]}
,[Dim Time].[Time].&[1930]
, "Time Net"
)
您需要在此处填写一些内容..
假设时间维度的层次结构为[Dim Time].[Time]
。请替换为真实姓名和会员格式(假设为&[1930]
另外,Time Net
是度量[Measures].[Available Time Net]
和[Measures].[Logged On Time Net]
所属的度量组名。再次,替换为原始名称。
为什么不直接将集合添加到 ROWS
?
SELECT
NON EMPTY
{
[Dim Date].[Date].&[08/01/2014] : [Dim Date].[Date].&[12/31/2014]
} ON ROWS
,{
[Measures].[Available Time Net]
,[Measures].[Logged On Time Net]
} ON COLUMNS
FROM [OTS Agent Time Net Data];