【发布时间】:2016-05-30 10:00:31
【问题描述】:
让我解释一下我想要实现的目标。我有一个 [Dim Account] 维度,它具有 [Account Type]、[Account Activity]、[Account Marketing] 等属性。[Account Type] 是收入、费用、.. [Account Activity] 就像广告、折扣, 赞助销售等 [Account Marketing] 是这些东西的组合,我的意思是广告是费用,而折扣存储为负收入,因此最终折扣将被视为营销费用这就是为什么我的会员 [Negative Total] 正在转换收入乘以-1,我想排除这些收入是正数,因为它们是收入。我只想显示那些转换后的收入,最后把它们加起来。在我的 MDX 中,数据显示完美,但由于
而匿名添加
[Dim Account].[Account Activity].CURRENTMEMBER 的条件是 [Dim Account].[Account Activity].[All] 当我想用原始收入(650,920.88)累积时,它会出现意想不到的大数字。我需要的另一个解决方案我想将营销费用(24010.44)与已经转换的负营销收入(43380.4+9181.32)相加,所以最终结果应该是 76572.16,就像我编辑的图片一样。请修改我的 MDX。
WITH
//MEMBER [Measures].[Negative Total Test] AS -- (1)
//CASE
// WHEN ([Measures].[Total],[Dim Account].[Account Marketing].&[Income]&[Marketing]) < 0
// THEN [Measures].[Total]*-1
// WHEN ([Measures].[Total],[Dim Account].[Account Marketing].&[Income]&[Marketing]) > 0
// THEN NULL
// ELSE
// [Measures].[Total]
//END
MEMBER [Measures].[Negative Total Test] AS
CASE
WHEN
[Dim Account].[Account Marketing].CurrentMember.Member_Caption
= "Marketing"
AND
[Dim Account].[Account Marketing].Properties("Account Type") = "Income"
AND
[Measures].[Total] < 1
THEN
[Measures].[Total] * -1
WHEN
[Dim Account].[Account Marketing].CurrentMember.Member_Caption
= "Marketing"
AND
[Dim Account].[Account Marketing].Properties("Account Type") = "Income"
AND
[Measures].[Total] > 1
THEN NULL
ELSE
[Measures].[Total]
END
MEMBER [Measures].[Negative Total] AS
CASE
WHEN
[Dim Account].[Account Activity].CurrentMember
IS
[Dim Account].[Account Activity].[All]
THEN
Sum
(
[Dim Account].[Account Activity].[Account Activity].MEMBERS
,[Measures].[Negative Total Test]
)
ELSE
[Measures].[Negative Total Test]
END
//MEMBER [Dim Account].[Account Activity].[TOTAL] AS
// [Dim Account].[Account Activity].[All]
MEMBER [Dim Account].[HierarchyMarketing].[Total Marketing Expense] AS
Aggregate
(
{
[Dim Account].[Account Marketing].&[Income]&[Marketing]
,[Dim Account].[Account Marketing].&[Expenses]&[Marketing]
}
,[Measures].[Negative Total Test]
)
SELECT
{
[Measures].[Total]
,[Measures].[Negative Total]
} ON COLUMNS
,NON EMPTY
(
{
[Dim Account].[HierarchyMarketing].[Account Type].&[Income]
*
{VisualTotals([Dim Account].[Account Activity].[All])}
,
{
[Dim Account].[HierarchyMarketing].[Account Marketing].&[Expenses]&[Marketing]
,[Dim Account].[HierarchyMarketing].[Account Marketing].&[Income]&[Marketing]
}
*
[Dim Account].[Account Activity].[Account Activity].MEMBERS
,(
[Dim Account].[HierarchyMarketing].[Total Marketing Expense]
,VisualTotals([Dim Account].[Account Activity].[All])
)
}
,[Dim Branch].[Trading As].&[BAR]&[Barlens Event Hire]
,[Dim Scenario].[Scenario Name].&[Actual]
,[Dim Fiscal Year].[HierarchyFiscal].[E Month].&[2016]&[December]
) ON ROWS
FROM [CubeProfitLoss];
【问题讨论】:
-
有没有人知道的解决方案?请帮帮我
标签: mdx