Enfin et pour conclure, une dernière requête qui permet
d’illustrer toute la puissance du MDX. L’objectif est d’afficher
pour l’année 1998 les coûts associés aux 2 familles de produits
ayant eu le plus fort chiffre d’affaire en 1997.
Une telle requête en SQL nécessiterait un certain
nombre d’opérations pour obtenir le même résultat (tables temporaires, sous requêtes …). Le MDX quant à lui colle
tellement aux problématique métier, que l’écriture de la
requête découle naturellement de l’énoncé de la question
posée.
SELECT
{MEASURES.[Store Cost]} ON COLUMNS,
{TOPCOUNT([Product].[Product Family].members, 2, ([Measures].[Store Sales],
Time.[1997])} ON ROWS
FROM SALES
WHERE ([Time].[1998])
PS: il n’y a pas de données pour 1998 dans le cube
Vous noterez dans cette requête qu’au lieu d’ énumérer
chacune des différentes familles de produits nous avons utilisé
la fonction .members. (qui permet ici de retourner tous
les membres du niveau Famille de produit) Ainsi si une
nouvelle famille de produit voyait le jour, la requête n’aurait
pas à être modifiée.
La fonction TOPCOUNT renvoie les n premiers éléments
d’un Set en fonction d’une valeur numérique définie par un
tuple ((Measures.[Store Cost], Time.[1997]) dans le cas présent).
Concrètement nous avons effectué une sous requête. La
première requête va récupérer les 2 familles de produits
ayant générées le plus de chiffre d’affaire en 1997
((Measures.[Store Sales], Time.[1997])) et affiche pour 1998
le coût associé. Tout ceci en quelques lignes grâce à l’incroyable
souplesse des tuples !!!
Le renouvellement d’un parc IT peut rapidement faire grimper les dépenses. Inventaire incomplet, postes surdimensionnés, manque de standardisation, perte de valeur du matériel et achats réactifs : découvrez les cinq…
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et…



