我在SSAS中创建计算成员时遇到问题。 事实表:
Date Store Product Sales_in_USD
--------------------------------------------------
2016-07-01 Store1 Product1 50
2016-07-01 Store1 Product2 100
2016-07-01 Store2 Product3 70
2016-07-01 Store2 Product2 85
尺寸: 日期,商店,产品
我希望得到类似的东西: 如果我按某些产品过滤,我希望通过此商店和日期获得所有销售,包括过滤产品+其他产品的销售,例如我希望按产品1过滤:
SQL code:
select sum(Sales_in_USD)
from [Fact table]
where Store in (select Store from [Fact table] where Product="Product1")
执行这个sql代码我得到所有Sales by Store1。
当我想要创建计算成员时,如何使用MDX创建它?
计算成员的输出必须是下一个:
Product Total_Sales_By_Store
------------------------------
Product1 50+100=150
Product2 50+100+70+85=305
Product3 70+85=155
答案 0 :(得分:0)
adGuestNum
根据您的要求,您真的不需要计算成员,因为这些措施将为您完成工作
对于特定产品名称Product1,则
SELECT
[Measures].[Sales_in_USD] ON 0,
{[Store].[Store Name].MEMBERS,
[Product].[Product].MEMBERS} ON 1
FROM [Cube Name];
答案 1 :(得分:0)
1 - 确定所选产品的有效商店。
NonEmpty(
[Store].[Store Name].MEMBERS,
([Product].[Product].Currentmember,[Measures].[Sales_in_USD])
)
2 - 获得当前产品的商店后,您需要计算可能元组的值的总和(交叉连接)。
with member Measures.[Total Sum of Stores] as
sum(
[Product].[Product].Currentmember *
NonEmpty
(
[Store].[Store Name].MEMBERS,
([Product].[Product].Currentmember,[Measures].[Sales_in_USD])
)
,
[Measures].[Sales_in_USD]
)
select Measures.[Total Sum of Stores] on 0
from [YourCube]
where [Product].[Product].[Product1]
答案 2 :(得分:0)
我认为Sourav几乎已经钉了它,但它可能更普遍吗?
WITH
MEMBER [Measures].[Total Sum of Stores] AS
SUM(
NONEMPTY(
[Store].[Store Name].MEMBERS,
(
[Product].[Product].Currentmember
,[Measures].[Sales_in_USD]
)
)
,[Measures].[Sales_in_USD]
)
SELECT
[Measures].[Total Sum of Stores] on 0,
[Product].[Product].[Product].MEMBERS ON 1
FROM [YourCube];