我使用的是一个多维立方体,其中包含许多维度和度量,用于在SSRS
中获取用于创建报告的数据。
这是任务文本:
有一个名为[案例计数]的度量,它连接到所需的维度。不知何故,我需要从中获取过滤后的事实,最终结果必须看起来像行上的用户名,月份和案例都依赖于列,显示每个用户聚合的每个月的案例数。
以下是我到目前为止编写的代码:
WITH
SET [Report Period] AS
Generate
(
ParallelPeriod
(
[Dim Date].[Calendar Hierarchy].[Calendar Month]
,13
,StrToMember
("[Dim Date].[Calendar Hierarchy].[Calendar Date].[2013-08-30]"
,CONSTRAINED
).Parent
)
:
StrToMember
("[Dim Date].[Calendar Hierarchy].[Calendar Date].[2014-08-30]"
,CONSTRAINED
).Parent
,{[Dim Date].[Calendar Hierarchy].CurrentMember}
)
SET [User Name] AS
Exists
(
[Dim Alert Action Assigned To User].[Group Hierarchy].[User Name].MEMBERS
,
[Report Period]
*
{
[Dim Group].[Group Name].&[QA Group]
,[Dim Group].[Group Name].&[Supervisor Group]
}
)
MEMBER [Measures].[Cases] AS
CoalesceEmpty
(
Aggregate
(
{
[Dim Case Action].[Action Case Alias].&[A]
,[Dim Case Action].[Action Case Alias].&[S]
}
,[Measures].[Case Count]
)
,0
)
SELECT
{[Report Period] * [Measures].[Cases]} ON 0
,{[User Name]} ON 1
FROM [CaseAlerts];
结果必须如下所示:
在行上 - >用户名,
在列上 - >月份和案例计算当前月份。
答案 0 :(得分:0)
以下两个条件似乎相互矛盾。
Exclude cases where [Case Action] = "A" and [Reason] = "R" or [Case Action] = "S";
Count where [Case Action] = "A" or [Case Action] = "B" and [Reason] = "R" (include all member from &[A Group] and &[B Group]);
我将忽略第一个条件。
应在前端检查以下条件。
Report date can be any valid date and can not be a future date.
至于其他条件,请检查下面的MDX是否有效。
WITH
SET CurrentMonth AS
EXISTS(
[Dim Date].[Calendar Hierarchy].[Calendar Month],
StrToMember
("[Dim Date].[Calendar Hierarchy].[Calendar Date].[2013-08-30]"
,CONSTRAINED
)
)
SET [Report Period] AS
IIF([Dim Date].[Calendar Hierarchy].CurrentMember IS NOT CurrentMonth.LastChild
,
{CurrentMonth.lag(14).lastChild
:
CurrentMonth.lag(1).lastChild}--last month's last date
,
{
ParallelPeriod(
[Dim Date].[Calendar Hierarchy].[Calendar Month]
,13
,
StrToMember
("[Dim Date].[Calendar Hierarchy].[Calendar Date].[2013-08-30]"
,CONSTRAINED
)
)
:
StrToMember
("[Dim Date].[Calendar Hierarchy].[Calendar Date].[2013-08-30]"
,CONSTRAINED
)
}
)
SET [User Name] AS
Exists
(
[Dim Alert Action Assigned To User].[Group Hierarchy].[User Name].MEMBERS
,
[Report Period]
*
{
[Dim Group].[Group Name].&[QA Group]
,[Dim Group].[Group Name].&[Supervisor Group]
}
)
MEMBER [Measures].[Cases] AS
CoalesceEmpty
(
Aggregate
(
({
[Dim Case Action].[Action Case Alias].&[A]
,[Dim Case Action].[Action Case Alias].&[S]
}, [Dim Case Action].[Reason].&[R])
,[Measures].[Case Count]
)
,0
)
SELECT
{[Report Period] * [Measures].[Cases]} ON 0
,{[User Name]} ON 1
FROM [CaseAlerts];