日期:2014-05-18  浏览次数:20534 次

MDX问题,多个存在层次关系的维度表如何关联
SQL code

MDX语句是这样:

SELECT NON EMPTY { 
    [Measures].[sold amount]
} ON COLUMNS, NON EMPTY { (
    [dim d_Date].[Full Date Alternate Key].[Full Date Alternate Key].ALLMEMBERS 
    * [dim d_prov].[prov_id].[prov_id].ALLMEMBERS 
    * [dim d_city].[city_id].[city_id].ALLMEMBERS 
) }
FROM [TTSLPMRPT_MINOS]
where ([dim d_Date].[Date SID].&[2011022110])



其中,d_Date,dim d_country和dim d_prov分别为维度表时间,省和市。省与市有层次关系,市维度表中有一个prov_id为外键。
不过按上面的MDX写法,省与市好像做乘法了?应该如何关联这两个维度表呢,就像SQL一样:where d_prov.prov_id = d_city.prov_id?

求赐教~

------解决方案--------------------
乘法或者用Crossjoin函数,相当于是笛卡尔积,在家nonempty函数, 就已经能到达你要的结果了。
------解决方案--------------------
SQL code
不懂,帮顶,学习,蹭分.

------解决方案--------------------
有时间真得学学BI。
------解决方案--------------------
省和市。省与市有层次关系,市维度表中有一个prov_id为外键。
===========
你的立方有问题.

1.省市应该放到一个地区表.
2.区分地区类型,在属性里,标注出.筛选时再过滤.
------解决方案--------------------
*不是乘法,是笛卡尔积
你的mdx也没写对,语法错误