MDX层次结构在crossjoin函数中调用多次
问题来自SQL版提问,问题提出比较清晰http://topic.csdn.net/u/20081208/18/662ee8ba-500e-491c-83f7-06729d7fc4fe.html
这里的多维数据集是foodmart的Warehouse and Sales。
1、查询销售量最高的2个品牌及其下销量最低的商品
这个问题我使用下面语句:
select {} on COLUMNS,
Generate(
TOPCOUNT(...members, 2, ),
{..CurrentMember}*
BottomCount(...members, 1, (,..CurrentMember))
)on ROWS
from
但是报错说Products层次结构在crossjoin函数中调用多次,我不明白为什么?如果不能这样做,而Product维度又只有一个层次结构,那么应该这样才能得到结果呢?
...
我的第一个回答
>>Products层次结构在crossjoin函数中调用多次
错误说明已经很明白了,msdn的例子是两个不同纬度(层次结构上的),同一层次结构只要用CurrentMember.Children就可以了何必再交叉呢
反馈
mdx写成这样:
select {} on COLUMNS,
Generate(
TOPCOUNT(...members, 2, ),
BottomCount(..CurrentMember.Children, 1, (,..CurrentMember))
)on ROWS
from
每行前面就没有商品品牌了。
我的第二个回答
层次结构不能多次出现,但是维度可以多次出现,把你要的品牌在前面再交叉一次吧:p
但是不能用层次结构,我不知道原始纬度是什么,比如是.
rows这里改为
{TOPCOUNT(..children,2, )}*{Generate(...)} on rows
反馈
我试了你说的,确实可以的
页:
[1]