我正在尝试运行此查询:
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
子句中存在的度量,但我还想在行上显示日期。我一直收到错误。
答案 0 :(得分:2)
为什么不直接将该集添加到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];
答案 1 :(得分:1)
您不能在一个轴上和切片器中使用相同的层次结构([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]
)
希望有所帮助。
(编辑:使用命名集或使用轴中的切片器内容 - 请参阅其他响应 - 有点不同,因为请求在几天内过滤但选择[Dim Date]。[Date]不一定显示天数;例如,可以是[Dim Date]的[All]层次。[Date])
答案 2 :(得分:0)
我同意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]
所属的度量值组名称。再次,用原始名称替换。