Bonjour
Contexte:
Base Oracle +
Un Univers existant avec entre autre une jointure entre table T_parent et T_enfant (via une colonne primary key de la table parent). L'univers contient une série de dimensions permettant d'afficher le contenu de ces 2 tables. Les enregistrements de la table T_enfant sont numérotés (colonne NUM_ORDRE). Une série de numéros existe pour chaque valeur de PK de la table parent.
Mon besoin:
Je dois modifier l'Univers pour afficher les attributs de deux tables, avec pour chaque ligne "parent" seulement les 2 lignes enfants contenant le minimum et maximum de numéro d'ordre.
Mes résultats:
J'arrive à le faire si je n'affiche que les informations de la table mère et min et max de la colonne NUM_ORDRE de la table enfant.
Par contre dès que j'intègre dans un rapport un champ supplémentaire de la table enfant, tout le contenu de cette table est affiché, car min et max sont évalués alors au niveau enregistrement enfant et non plus au niveau de l'identifiant T_parent.PK dans la table enfant:
Ce que je voudrais faire c'est de paramétrer l'Univers pour arriver via BO à générer un rapport avec un sql équivalent de :
Quelle astuce de Designor permet de le faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Select * from T_parent p, T_enfant e Where p.PK=e.PK /* condition de jointure classique */ and (e.num_ordre = (select min(e2.num_ordre) from T_enfant e2 where e2.PK = p.PK) OR e.num_ordre = (select max(e2.num_ordre) from T_enfant e2 where e2.PK = p.PK) )
Merci d'avance
msomso
Partager