MDX获取值并在层次结构上使用它
我有一个MDX脚本,我的目标是能够获得一个日期的值,它可以是一天、一周、一个月、一个季度或一年,然后在层次结构上使用它MDX获取值并在层次结构上使用它,mdx,Mdx,我有一个MDX脚本,我的目标是能够获得一个日期的值,它可以是一天、一周、一个月、一个季度或一年,然后在层次结构上使用它 WITH MEMBER measures.suma AS Sum ( [Date Local].[year-quarter-month-week-day].Children ,IIF ( ( [Measures].[Agent Time Logged in hh
WITH
MEMBER measures.suma AS
Sum
(
[Date Local].[year-quarter-month-week-day].Children
,IIF
(
(
[Measures].[Agent Time Logged in hh:mm:ss]
-
[Measures].[Activity Time Break]
-
[Measures].[Activity Time Meeting]
-
[Measures].[Activity Time Training]
)
/
26400 / 86400
> 1
,1
,
(
[Measures].[Agent Time Logged in hh:mm:ss]
-
[Measures].[Activity Time Break]
-
[Measures].[Activity Time Meeting]
-
[Measures].[Activity Time Training]
)
/
26400 / 86400
)
)
SELECT
{
measures.suma
,[Measures].[MyKeys]
,[Measures].[Agent Time Logged in hh:mm:ss]
,[Measures].[Activity Time Break]
,[Measures].[Activity Time Meeting]
,[Measures].[Activity Time Training]
,[Measures].[Activity time Lunch]
} ON 0
,NON EMPTY
[Agent].[login fullname].[login fullname] ON 1
FROM [HP TRANSACTIONAL]
WHERE
[Date Local].[Month].&[2015-08 August];-- DOESNT WORK
--[Date Local].[year-quarter-month-week-day].[Week].&[2015 Week 35] --IT WORKS
正如您在我的MDX脚本中所看到的那样,我想对代理的所有活动进行汇总,客户可以选择任何筛选器,每天、每周、每月、季度或每年。
当然,他们可以使用我的层次结构“[Date Local].[Month].&[2015-08 August]”,但我的客户正在使用EXCEL
创建报告,他们可以使用日期维度的任何属性
因此,我的目标是找到一种方法,向我的mdx
脚本表明,如果客户机选择任何属性,应该能够获取当前成员并使用层次结构进行计算。也许只需尝试关键字Existing
,尝试将上下文强制添加到您的度量值suma
WITH
MEMBER [measures].[suma] AS
Sum
(
EXISTING([Date Local].[year-quarter-month-week-day].MEMBERS)
,IIF
(
(
[Measures].[Agent Time Logged in hh:mm:ss]
-
[Measures].[Activity Time Break]
-
[Measures].[Activity Time Meeting]
-
[Measures].[Activity Time Training]
)
/
26400 / 86400
> 1
,1
,
(
[Measures].[Agent Time Logged in hh:mm:ss]
-
[Measures].[Activity Time Break]
-
[Measures].[Activity Time Meeting]
-
[Measures].[Activity Time Training]
)
/
26400 / 86400
)
)
SELECT
{
measures.suma
,[Measures].[MyKeys]
,[Measures].[Agent Time Logged in hh:mm:ss]
,[Measures].[Activity Time Break]
,[Measures].[Activity Time Meeting]
,[Measures].[Activity Time Training]
,[Measures].[Activity time Lunch]
} ON 0
,NON EMPTY
[Agent].[login fullname].[login fullname] ON 1
FROM [HP TRANSACTIONAL]
WHERE
[Date Local].[Month].&[2015-08 August];-- DOESNT WORK
--[Date Local].[year-quarter-month-week-day].[Week].&[2015 Week 35] --IT WORKS
我找到了解决办法
WITH
MEMBER measures.suma AS
Sum
(
(EXISTING
[Date Local].[year-quarter-month-week-day].[Day name])
,IIF
(
(
[Measures].[Agent Time Logged in hh:mm:ss]
-
[Measures].[Activity Time Break]
-
[Measures].[Activity Time Meeting]
-
[Measures].[Activity Time Training]
)
/
26400 / 86400
> 1
,1
,
(
[Measures].[Agent Time Logged in hh:mm:ss]
-
[Measures].[Activity Time Break]
-
[Measures].[Activity Time Meeting]
-
[Measures].[Activity Time Training]
)
/
26400 / 86400
)
)
SELECT
{
measures.suma
,[Measures].[Agent Time Logged in hh:mm:ss]
,[Measures].[Activity Time Break]
,[Measures].[Activity Time Meeting]
,[Measures].[Activity Time Training]
,[Measures].[Activity time Lunch]
} ON 0
,NON EMPTY
[Agent].[login fullname].[login fullname] ON 1
FROM [HP TRANSACTIONAL]
WHERE
[Date Local].[Date Standard].&[2015-08-24T00:00:00];
--TEST
--[Date Local].[Week].&[2015 Week 35]
--[Date Local].[Month].&[2015-08 August]
--[Date Local].[year-quarter-month-week-day].[Week].&[2015 Week 35]
我希望这个解决方案能对其他人有所帮助。
Raul我认为您需要以某种方式更改Sum
函数中的第一个参数:[Date Local].[year-quarty-month-week-day]。Children
我无法更改,因为我需要使用此层次结构才能每天求和。这里的问题是,客户可以使用我的dim date的任何属性作为过滤器,我需要找到一种方法将属性发送到层次结构,然后求和。我有一个简单的想法-不确定它是否会起作用,尽管hi@whytheq,它不起作用。我给你更多的例子:LoginName | DATE | FTE bastien | 2015年8月6日| 0.9542 bastien | 2015年8月25日| 1 FTE=iif。。。。应该是19542年。。。正如您所看到的,我每个用户有两行。但是如果我执行你的查询,我得到了6954242..Hi Raul-如果没有我建议的关键字EXISTING
,你的解决方案是否有效?Hi@whytheq,我一直在用现有的测试脚本,但我没有尝试没有。我应该脱掉它吗?我想说的是,如果脚本只在包含现有的情况下工作,那么我就回答了你的问题?嗨@whytheq很抱歉回答得太晚了,但我测试了查询,没有现有的不工作,现有的工作100%。