|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
Bonjour
Ca fait un moment que je tourne autour d'un problème de conception sans trouver de solution élégante du coup je m'en remets a vous. Dans le cadre de la remise à plat d'un infocentre j'ai (pour simplifier) à gérer des clients et des contrats. On dispose donc d'une table de fait contrat avec ses dimensions clients et date. En plus des demandes 'classiques' on souhaite connaitre le nombre de clients 'actif' c'est à dire ayant un contrat ouvert à un instant t. Autant avoir le nombre de contrats créés pour un client à une date donnée est simple, autant avoir le nombre de contrats correspondant à un intervalle englobant la date donnée me semble complexe. Dans les solutions envisagées on a regardé pour faire une nouvelle étoile centrée sur le client, faire snapshot des données par mois, construire coté ETL des agrégats associés à une période contenant ces données, essayer de changer le relation coté Cognos framework mais aucune solution nous satisfait pleinement. Avez vous eu à résoudre ce genre de problème? Jean-Philippe |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Jacques VaillConsultant en Business Intelligence Inscription : septembre 2010 Messages : 45 ![]() |
Bonjour,
La solution réside dans ces 3 items : 1-clé transférable dans la table de fait à partir des dimensions 2-relation entre dimension - fait 3-Utiliser invite pour la période requise Si tes dimensions sont bien définies tu vas pouvoir sélection facilement ce que tu as besoin exemple dans contrat date de début et date de fin est essentiel, pour trouver les contrats actifs : date requise entre date début et date fin ou identifiant de la ligne dimension temps entre identifiant transférer pour la date de début et la date de fin. Donne un filtre : temps.temps_sk between contrat.dd_temps_fk and contrat.df_temps_fk si tu veux ceux qui sont encore actif aujourd'hui contrat.ouvert ='OUI', qui devrait être une dimension qualifiant les états de contrat dim_contrat selon moi, une table de fait f_contrat contenant toutes les clés transférables, les clé qualificative pour un contrat. Si tu veux toutes les dates ou tous les clients c'est la que vas se définir ta cardinalité entre les dimensions et fait. Pour la date requise un prompt qui transfert non pas la date sélectionné mais le sk associer à la table temps, plus facile à transférer et manipuler que de jouer entre des dates, qui ne sont pas facile dans Cognos, je dois admettre Juste t'assurer que ta table de fait contrat contient toute les informations nécessaire pour être trier par les dimensions. Exempe de select résultant: Select a.date_Effetive, dco.nom_client, dco.lieu, sum(fc.compteur_contrat) From temps a , F_Contrat , dim_Client dcl, dim_contrat dco Where a.date_Eff = ?date_Requise? And a.dm_temps_sk =between co.dd_dm_temps_fk and co.df_temps_fk And co.client_fk = cl.cilent_sk group by ... order by ... Bonne journée
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mars 2010 Messages : 105 ![]() |
Bonjour,
Si j'ai bien compris, jpvigniel veut savoir le nombre de contrats créés sur un laps de temps entre autres. Et ElPoune nous donne une solution pour savoir le nombre de contrats ouverts à une date donnée. Moi, je vois pas trop la difficulté de ce problème, jpvigniel est pet-être géné par plusieurs dates. A mon avis, en tous cas, un seul axe de temps ne suffit pas pour de divers analyses. Une définition pour chaque axe est donc nécessaire. |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
Désolé, je reviens sur ce post avec un peu de retard.
C'est bien le nombre de contrats ouvert à une période données qui est demandé. Par rapport à la solution de ElPoune c'est bien ce qui est recherché mais il faut utiliser une valeur de la dimension Date en lieu et place de la valeur d'invite. C'est la que se trouve la limite à mes connaissances, car la solution donnée ne permet pas de construire un tableau avec les clients actifs par mois, mais seulement les client actifs pour la date x. (ou alors j'ai mal compris Pour l'instant la solution adopté a été de créer une nouvelle étoile avec comme fait central l'activité client indiquant entre autre si le client est actif. C'est simple a utiliser pour les auteurs de rapport et ca marche bien. Merci encore pour votre aide. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com