|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2010 Messages : 38 ![]() |
Bonjour bonjour.
Je vais me sentir un peu honteux de poser des questions aussi basique puisque ca fait maintenant presque deux mois que je tâte du BO, mais bon, il est jamais trop tard... Mon problème est assez général. J'ai 3 tables A, B et C. A contient ID_1 et d'autres données A1, A2 etc... B contient ID_1 et ID_2 et d'autres données (B1, B2...) C contient ID_2 et ID_3 et d'autres données (C1, C2...) La problématique générale est d'afficher un tableau contenant ID_1 et C1 si il existe bien un C1 associé à cet ID_1, et rien sinon. Dans le cas ou l'on voudrai afficher ID1 et B1, pas de problèmes: -Sous designer on relie les tables comme il faut. -Sous webi, on crée 2 requêtes une ramenant A et une B, on lie ID_1(A) et ID_1(B) et on crée une information Ib1 ayant pour formule B1,associé a ID_1 fusionné. -Et hop, on affiche ID_1 et Ib1, on auras ainsi tous les C1 qui correspondent aux ID1 si ils existent Mais si je fait la même chose sur C1, c'est a dire -creer 3 requêtes (A, B et C) -lier ID_1(A) et ID_1(B), ainsi que ID_2(B) et ID_2(C) -créer l' information Ic1 affichant C1, associé a ID_1 On obtient une erreur d'incompatibilité. Alors étant donnée mon faible niveau dans le monde des bases de données en général, je me sens vraiment super perdu. Mon erreur vient peut être de la construction de mon univers, de ma méthode, ou peut être même que c'est impossible je ne sais pas. Je ne sais même pas si ce problème est basique, courant ou élémentaire. C'est pourquoi je le poste chez les débutants. Je pourrai étendre la question à une quatrième ou cinquième table... Merciiiiiii |
|
|
00
|
|
|
#2 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
C'est une bonne question, malheureusement, on ne peut pas dire sans avoir ton modèle sous les yeux...
Ca va dépendre de beaucoup de choses. Si tu pouvais partir d'un exemple concret qui illustre bien ta problèmatique ca serait bien, car ID_1, ID_2 etc.. Qu'est ce que c'est ? Magasin, Rayon, Famille, Produit ? Continent, Pays, Région, Ville ? Ou alors, rien à voir avec des niveaux de hiérarchies ? Ton problème peut en effet venir de ton modèle si tu as mal fait les jointures ou si les tables ne sont pas structurées de la bonne façon. Ton modèle de données est il bien un modèle décisionnel ? et non pas opérationnel ? Plus concrètement, se base-t-il sur un modèle en flocon ou étoile ? Les tables de dimensions gravitent-elles bien autour des tables de faits ? Après, il faut aussi se poser comme question : Pourquoi tu ne peux pas mettre ID_1, ID_2 et ID_3 dans la même requête ? Si tu ne peux pas les mettre dans la même requête, est ce que ca a un sens de les lier par la suite ? Réellement, je pense que souvent, dans ce genre de cas, le problème est antérieur à la partie reporting, mais se trouve plutôt dans la partie modélisation du DWH. Je t'invite à te poser toutes ces questions (et à répondre aux miennes :p), je pense qu'elles sont importantes. Si tu t'es déjà posé ces questions, réponds juste aux miennes pour qu'on puisse te venir en aide Bon courage
__________________
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2010 Messages : 38 ![]() |
Alaala, c'est vraiment pas simple de te répondre parce que mon univers est plutot compliqué.
Commençons par les réponses faciles: Les tables n'ont pas de relation de hiérarchie. Les différentes tables n'ont pas de liaisons complexes, j'entends par la qu'il n'y a aucune boucles dans les liaisons. Ben c'est tout pour les réponses faciles... Le contexte est vraiment trop complexe pour que je le développe ici... "Pourquoi tu ne peux pas mettre ID_1, ID_2 et ID_3 dans la même requête ?" Pour des raisons de cardinalité je crois, si je le fait, je n'extrait aucune donnée. (cela viens surement de jointures externes) En fait je pense que ce sont mes jointures qui me posent problème... Mais , pour en revenir à la théorie, en supposant que mon univers soit nickel, est ce que ma méthode fonctionne? Argh J'ai très mal a la tête avec tout ca moi.... |
|
|
00
|
|
|
#4 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Je trouve déjà que la méthode : transformer une dimension en information pour la faire dépendre d'une autre dimension pour pouvoir la mettre dans le tableau est limite quand il y'a 2 requêtes, car source d'erreurs. Alors si on augmente le nombre de requête, ca deviendra vite n'importe quoi.
De plus, c'est sur que ca ne fonctionnera jamais si tu n'as pas du 1-n de requête en requête. Bref, je pense qu'il faut en effet revoir ton modèle, car le décisionnel, c'est éviter justement ce genre d'usine à gaz...
__________________
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2010 Messages : 38 ![]() |
Effectivement, mon erreur provenait de mes liaisons: j'ai inversé le sens d'une jointure externe.
En repassant tout sous deux requêtes comme tu me l'as conseillé ca a fonctionné. OUf, le mal de crane est passé! Merci julien! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com