实现百分比和百分比的累加以及A、B、C类别的标识

with
member [Measures].[Total Sales]  as 'Sum({[Product].[Brand].[Brand].members},[Measures].[Ending Inventory Cost])',format_string="#,#.00"
member [Measures].[Rate]            as [Measures].[Ending Inventory Cost]/[Measures].[Total Sales],format_string='0.00%'
set         [Brand]                             as 'AddCalculatedMembers({order({[Product].[Brand].[Brand]},[Measures].[Rate],desc)})'
set         [BrandAsc]                       as 'AddCalculatedMembers({order({[Product].[Brand].[Brand]},[Measures].[Rate],asc)})'
member [measures].[EIC]              as '[measures].[Ending Inventory Cost]',format_string="#,#.00"
member [measures].[code]             as '(Rank([Product].[Brand].currentmember, {AddCalculatedMembers({order({[Product].[Brand].[Brand]},[Measures].[Rate],desc)})}))'//,format_string='0.00%'
member [measures].[Accumul]      as '(sum(tail({[BrandAsc]},[code]),[Measures].[Rate]))',format_string='0.00%'
member [measures].[Flag]              as case when [Measures].[Accumul] <= 0.75 then 'A' when [Measures].[Accumul] > 0.75 and [Measures].[Accumul] <= 0.99 then 'B' else 'C' end

select
     {[Measures].[Flag],[Measures].[EIC],[Measures].[Rate],[Measures].[Accumul]} on 0
    ,[Brand] on 1
from [Stock OnHand SnapShot]

posted @ 2012-07-09 10:07  chunshen  阅读(347)  评论(0编辑  收藏  举报