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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.