Bonjour à tous.

La question bête : comment fait-on du cross-domains avec Cognos ?

Soit 2 tables de faits : ventes (CA, période_id, agence_id) et achats (dépense, période_id, agence_id). Soit 2 tables de dimension : agence (agence_id, agence_name) et période(période_id, période_name).

Je peux choisir de comparer mes chiffres des ventes avec mes chiffres d'achats soit par agence, soit par période, soit par les deux. Cependant pour éviter le produit cartésien j'ai besoin que les 2 tables de dimensions soient utilisées.

Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Select période_name, sum(CA) FROM ventes, période where ventes.période_id = période.période_id
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Select agence_name, sum(CA) FROM ventes, agence where ventes.agence_id = agence.agence_id
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Select période_name, sum(dépense) FROM achats, période where achats.période_id = période.période_id
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Select agence_name, sum(dépense) FROM achats, agence where achats.agence_id = agence.agence_id
Ca marche bien.

Par contre si je commence à croiser les domaines c'est plus chaud. Si je fais ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Select période_name, sum(CA), sum(dépenses) FROM ventes, période, achats where ventes.période_id = période.période_id and achats.période_id=période.période_id
j'obtiens un produit cartésien. Il faut obligatoirement ajouter la condition
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ventes.agence_id = agences.agence_id and achats.agence_id=agences.agence
D'où la question : comment je fais ça dans mon framework ? On a bien une idée à base de Merge Query Subjects et de filters mais on est pas sûr de la qualité du truc...

Merci de vos réponses.