我有一个MDX查询:
SELECT
({[Measures].[Sales Count]}) ON COLUMNS,
{Filter([Creation Date].[Day].Members,
([Creation Date].[Day].CurrentMember.Name >= '2016/09/01' AND
[Creation Date].[Day].CurrentMember.Name <= '2016/09/05'))} ON ROWS
FROM [Date Sales Schema]
它允许我选择日期范围的销售计数。 此外,我可以通过将[创建日期]。[日]查询到[创建日期]。[分钟]来过滤分钟。 但是,如果我想要按分钟过滤,并获得销售计数天的结果,我不知道,我必须写什么查询?
例如: 从9月8日 - 15:57过滤到9月10日 - 13:35 - 结果应为:
此类查询接近决定:
SELECT
{[Measures].[Sales Count]} ON COLUMNS
,Exists
(
[Creation Date].[Day].MEMBERS
,Filter
(
[Creation Date].[Minute].MEMBERS
,
[Creation Date].[Minute].CurrentMember.Name >= '2016/09/01 15:57'
AND
[Creation Date].[Minute].CurrentMember.Name <= '2016/09/10 15:57'
)
) ON ROWS
FROM [Date Sales Schema];
但是,例如,如果我在10.02.2016 23:55进行销售,并且过滤器于10.02.2016 23:54开始,请求显示10.02的所有销售额。< / p>
下一个查询计算所有期间的总和,并将总和打印为每个日期维度的度量:
WITH MEMBER [Measures].[Day Period Sales Count] AS Aggregate(Filter
(
[Creation Date].[Minute].MEMBERS
,
[Creation Date].[Minute].CurrentMember.Name >= '2016/09/01 07:27'
AND
[Creation Date].[Minute].CurrentMember.Name <= '2016/09/01 15:57'
)
)
SELECT
([Measures].[Day Period Sales Count]) ON COLUMNS ,{[Creation Date].[Day].[2016/09/01],[Creation Date].[Day].[2016/09/02]} ON ROWS
FROM [Date Sales Schema]
但它没有按天划分结果
答案 0 :(得分:2)
您可以将分钟过滤器放在子选择中:
SELECT
{[Measures].[Sales Count]} ON COLUMNS
,{
Filter
(
[Creation Date].[Day].MEMBERS
,
[Creation Date].[Day].CurrentMember.Name >= '2016/09/01'
AND
[Creation Date].[Day].CurrentMember.Name <= '2016/09/05'
)
} ON ROWS
FROM
(
SELECT
[Creation Date].[Minute].&[1] : [Creation Date].[Minute].&[10] ON 0
FROM [Date Sales Schema]
);
没有subselect
:
SELECT
{[Measures].[Sales Count]} ON COLUMNS
,Exists
(
[Creation Date].[Day].MEMBERS
,Filter
(
[Creation Date].[Minute].MEMBERS
,
[Creation Date].[Minute].CurrentMember.Name >= '2016/09/01 15:57'
AND
[Creation Date].[Minute].CurrentMember.Name <= '2016/09/10 15:57'
)
) ON ROWS
FROM [Date Sales Schema];
试试这个:
WITH
MEMBER [Measures].[Day Period Sales Count] AS
Aggregate
(
(EXISTING
Filter
(
[Creation Date].[Minute].MEMBERS
,
[Creation Date].[Minute].CurrentMember.Name >= '2016/09/01 07:27'
AND
[Creation Date].[Minute].CurrentMember.Name <= '2016/09/01 15:57'
))
,[Measures].[Sales Count]
)
SELECT
[Measures].[Day Period Sales Count] ON COLUMNS
,{
[Creation Date].[Day].[2016/09/01]
,[Creation Date].[Day].[2016/09/02]
} ON ROWS
FROM [Date Sales Schema];
答案 1 :(得分:0)
了解您的日期/时间维度是如何构建的。
分钟/小时是日期的属性吗?是否有任何与这两者相关的层次结构?
您可以将日期设为RANGE。甚至应该有助于提高表现。
[时间]部分...... SSAS不准备处理分钟和小时以及日期,除非你实际上在层次结构中同时关联,这应该使得它与Range非常直接地获得所有值。只需在子选择中使用Range,就像他们指出的那样,并使用轴上的 NameError:
undefined local variable or method `user' for #<RSpec::ExampleGroups::Address:0x00000001a94b00>
# ./spec/models/addres
。
[Creation Date].[Day]
但这很大程度上取决于你的尺寸。