OLAP : Regroupement avec MDX
J'espère que je suis sur le bon forum.
Je dois réaliser un cube olap dont le but est de visualiser les n meilleurs ventes d'une période, ça peut être les deux dernières journées, la dernière semaine, le dernier mois, la dernière année ... Je veux aussi pouvoir visualiser les n meilleurs acheteurs d'une période.
Je crée pour celà un schema avec deux dimensions, clients et temps :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
<Schema name="sales">
<Cube name="customer" cache="true" enabled="true">
<Table name="v_sales">
</Table>
<Dimension type="StandardDimension" foreignKey="customer_id" name="customer">
<Hierarchy name="customer" hasAll="true" primaryKey="customer_id">
<Table name="v_customer">
</Table>
<Level name="firstname" column="firstname" nameColumn="firstname" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension foreignKey="time_id" name="Time">
<Hierarchy hasAll="false" primaryKey="time_id">
<Table name="bi_time">
</Table>
<Level name="Year" column="the_year" type="Numeric" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="Month" column="the_month" type="Numeric" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="Day" column="the_day" uniqueMembers="false">
</Level>
</Hierarchy>
</Dimension>
<Measure name="price" column="grand_total" datatype="Numeric" aggregator="sum" visible="true">
</Measure>
<Measure name="tax_amount" column="base_tax_amount" aggregator="sum" caption="tax" visible="true">
</Measure>
</Cube>
</Schema> |
et une requête MDX juste pour visualiser les données
Code:
1 2 3
| select NON EMPTY {[Measures].[price], [Measures].[tax_amount]} ON COLUMNS,
Hierarchize(Union({([Time].[2007], [customer.customer].[All customer.customers]), ([Time].[2008], [customer.customer].[All customer.customers]), ([Time].[2009], [customer.customer].[All customer.customers])}, Crossjoin([Time].[2007].Children, {[customer.customer].[All customer.customers]}))) ON ROWS
from [customer] |
Mon problème actuellement est de savoir si je dois m'y prendre au niveau de BD avec les group by ou si je peux me suffir de MDX.