Voilà donc un cas d’école de la vraie vie comme un consultant décisionnel aime à en voir: Comment calculer mois par mois un pipe commercial ?
Bon, le besoin est simple: une entreprise veut connaître mois par mois le montant global des propositions commerciales qui ont été envoyées à ses prospects.
En général l’entreprise a un système de force de ventes qui permet d’extraire ces données là.
Par exemple , un extract serait :
N° de devis, N° de client/prospect, date du devis , date d’expiration du devis (ou date de commande),Montant du devis, etc.
Imaginons que nous voulions savoir la liste de tous les devis actifs sur le mois de janvier.
On va donc devoir identifier les cas possibles; ça se résume à cette image :
La solution SQL:
Bon là c’est facile , il suffit de retranscrire les 4 cas possibles dans les conditions de filtre:
select sum(montant) from Pipe where (datedevis>= ’01/01/2011′ and datecommande<=’31/01/2011′ or () etc…
Fastidieux, non ?…
Heureusement, Il y a une façon plus élégante de regrouper les filtres:
select sum(montant) from Pipe where (datedevis <= ’31/01/2011′) and (datecommande >= ’01/01/2011′ );
Dans le prochain article j’aborderais la solution MDX pour Mondrian.