Re: Get member from cell ordinal

From: Akshai Mirchandani [MS] (akshaim_at_online.microsoft.com)
Date: 03/15/04

  • Next message: Patrice Lamarche: "Re: Get member from cell ordinal"
    Date: Mon, 15 Mar 2004 12:25:42 -0800
    
    

    Hi Patrice,

    If you look in the OLE DB for OLAP specification on MSDN, you will find a
    section on calculating the cell ordinal from tuple ordinals.

    Basically, you need to invert this formula to obtain a tuple ordinal from a
    cell ordinal. You loop over the tuple counts of each axis and obtain the
    offset into the axis that you want. e.g. take 3 axes with 2, 3, 4 tuples
    respectively. Then Axis 2 would divide by ( 2 * 3 ), Axis 1 would divide by
    2 and Axis 0 would divide by 1. So a cell ordinal 5 would be:

    Axis 2: 5 / 6 = 0
    Axis 1: (5 - 0*6) / 2 = 2
    Axis 0: (5 - 2*2) / 1 = 1
    = (1, 2, 0)

    A cell ordinal of 21 would be:
    Axis 2: 21 / 6 = 3
    Axis 1: (21 - 3*6) / 2 = 1
    Axis 0: (3 - 1*2) / 1 = 1
    = (3, 1, 1)

    You need to be a little careful about dividing by 0 and doing the modulus,
    but its not too complicated to work that out...

    HTH,
    Akshai

    --
    This posting is provided "AS IS" with no warranties, and confers no rights
    Please do not send email directly to this alias. This alias is for newsgroup
    purposes only.
    "Patrice Lamarche" <Patrice_lamarche@gco.ca.nospam> wrote in message
    news:e3P9EGqCEHA.2556@TK2MSFTNGP12.phx.gbl...
    > Hello Everyone,
    >
    >     I would like to know if it's possible to get the dimension from the
    cell
    > ordinal.
    >
    > example :
    >
    >      Unit Sales
    >          Drink 24 597,00
    >          Food 191 940,00
    >          Non-Consumable 50 236,00
    >
    >
    > 191 940,00 is the ordinal 1 .. i would like to find with the xml on
    columns
    > it's [Product].[Food] and on rows it's [Measures].[Unit Sales]
    >
    > Thanks & regards,
    >
    > Patrice
    >
    >
    begin 666 olapmddata02.gif
    M1TE&.#=AE0&,`/<``/______SO__G/__8___,?__`/_,___,S/_,F?_,9O_,
    M,__,`/^9__^9S/^9F?^99O^9,_^9`/]F__]FS/]FF?]F9O]F,_]F`/\S__\S
    MS/\SF?\S9O\S,_\S`/\`__\`S/\`F?\`9O\`,_\``,S__\S_S,S_F<S_9LS_
    M,\S_`,S,_\S,S,S,F<S,9LS,,\S,`,R9_\R9S,R9F<R99LR9,\R9`,QF_\QF
    MS,QFF<QF9LQF,\QF`,PS_\PSS,PSF<PS9LPS,\PS`,P`_\P`S,P`F<P`9LP`
    M,\P``)G__YG_S)G_F9G_9IG_,YG_`)G,_YG,S)G,F9G,9IG,,YG,`)F9_YF9
    MS)F9F9F99IF9,YF9`)EF_YEFS)EFF9EF9IEF,YEF`)DS_YDSS)DSF9DS9IDS
    M,YDS`)D`_YD`S)D`F9D`9ID`,YD``&;__V;_S&;_F6;_9F;_,V;_`&;,_V;,
    MS&;,F6;,9F;,,V;,`&:9_V:9S&:9F6:9:6:9,V:9`&9F_V9FS&9FF69F9F9F
    M,V9F`&8S_V8SS&8SF68S9F8S,V8S`&8`_V8`S&8`F68`9F8`,V8``#/__S/_
    MS#/_F3/_9C/_,S/_`#/,_S/,S#/,F3/,9C/,,S/,`#.9_S.9S#.9F3.99C.9
    M,S.9`#-F_S-FS#-FF3-F9C-F,S-F`#,S_S,SS#,SF3,S9C,S,S,S`#,`_S,`
    MS#,`F3,`9C,`,S,```#__P#_S #_F0#_9@#_,P#_``#,_P#,S #,F0#,9@#,
    M,P#,``"9_P"9S "9F0"99@"9,P"9``!F_P!FS !FF0!F9@!F,P!F```S_P`S
    MS `SF0`S9@`S,P`S````_P``S ``F0``9@``,P```"<G)R8F)B4E)20D)",C
    M(R(B(B$A(2 @(!\?'QX>'AT='1P<'!L;&QH:&AD9&1@8&!<7%Q86%A45%104
    M%!,3$Q(2$A$1$1 0$ \/#PX.#@T-#0P,# L+"PH*"@D)"0@(" <'!P8&!@4%
    M!00$! ,#`P("`@$!`0```"P`````E0&,```(_P"O"1Q(L*#!@P@3*ES(L*'#
    MAQ C2IQ(L:+%BQ@S:MS(L:/'CR!#BAQ)LJ3)DQ\!J%S)LJ7+ES!CRIQ)LZ;-
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
    2F_[TJ$^]ZE?/^M:[/O4!`0`[
    `
    end
    

  • Next message: Patrice Lamarche: "Re: Get member from cell ordinal"