我想查北京地区3月份和南京地区4月份各产品的销售额。
刚学MDX,我想两个集合分别求交集,再求两个交集的并集,见下面的Where字句:
不知道这个方法有没有问题。
select [Measure].[sale count] on 0,
[Product].[Name] on 1
from Adventure
where(
StrToSet("[City].&[BJ]")*
StrToSet("[Date].[Month].&[3]")+
StrToSet("[City].&[NJ]")*
StrToSet("[Date].[Month].&[4]")
)
这样写报错:
“对于任意形状,如果其元素跨引用维度,则不允许使用它。”
不知道错误信息是什么意思 。
------解决方案--------------------------------------------------------
我想这样的结果是不是一样的?
select [Measure].[sale count] on 0,
[Product].[Name] on 1
from Adventure
where{
([City].&[BJ],[Date].[Month].&[3]),
([City].&[NJ],[Date].[Month].&[4])
}
------解决方案--------------------------------------------------------
select [Measure].[sale count] on 0,
[Product].[Name] on 1
from Adventure
where
crossjion
({[City].&[BJ]}, {[Date].[Month].&[3]}),
crossjion
({[City].&[nj]}, {[Date].[Month].&[4]})
------解决方案--------------------------------------------------------
select [Measure].[sale count] on 0,
[Product].[Name] on 1
from Adventure
where
crossjion
({[City].&[BJ]}, {[Date].[Month].&[3]}),
crossjion
({[City].&[nj]}, {[Date].[Month].&[4]})
------解决方案--------------------------------------------------------
with measure [City].[temp] 'aggredate({[City].&[BJ],[City].&[nj]})'
measure [Date].[Month].[temp]'aggredate({[Date].[Month].&[3],[Date].[Month].&[4]})'
select [Measure].[sale count] on 0,
[Product].[Name] on 1
from Adventure
where
([City].[temp],[Date].[Month].[temp])
----