MDX层次结构在crossjoin函数中多次调用
来源:优易学  2011-12-13 13:11:00   【优易学:中国教育考试门户网】   资料下载   IT书店
  这里的多维数据集是foodmart的Warehouse and Sales。
  查询销售量最高的2个品牌及其下销量最低的商品
  这个问题我使用下面语句:
  select {[Unit Sales]} on COLUMNS,
  Generate(
  TOPCOUNT([Product].[Products].[Brand].members, 2, [Unit Sales]),
  {[Product].[Products].CurrentMember}*
  BottomCount([Product].[Products].[Product].members, 1, ([Unit Sales],[Product].[Products].CurrentMember))
  )on ROWS
  from [Warehouse and Sales]
  但是报错说Products层次结构在crossjoin函数中调用多次,不明白为什么?如果不能这样做,而Product维度又只有一个层次结构,那么应该这样才能得到结果呢?
  我的第一个回答
  >>Products层次结构在crossjoin函数中调用多次
  错误说明已经很明白了,msdn的例子是两个不同纬度(层次结构上的),同一层次结构只要用CurrentMember.Children就可以了何必再交叉呢
  反馈
  mdx写成这样:
  select {[Unit Sales]} on COLUMNS,
  Generate(
  TOPCOUNT([Product].[Products].[Brand].members, 2, [Unit Sales]),
  BottomCount([Product].[Products].CurrentMember.Children, 1, ([Unit Sales],[Product].[Products].CurrentMember))
  )on ROWS
  from [Warehouse and Sales]
  每行前面就没有商品品牌了。
  我的第二个回答
  层次结构不能多次出现,但是维度可以多次出现,把你要的品牌在前面再交叉一次吧:p
  但是不能用层次结构,我不知道原始纬度是什么,比如是[Products].[Brand]
  rows这里改为
  {TOPCOUNT([Products].[Brand].children,2, [Unit Sales])}*{Generate(...)} on rows
  反馈

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训