Bonjour,
J'ai, disons, une table d'objets:
(où DATE_INS est la date d'insertion, et ENV son environnement - parmi 4: INT, REC, PPR, PRD)
Code : Sélectionner tout - Visualiser dans une fenêtre à part OBJ: IDOBJ, NOM, DATE_INS, ENV, PROPRIETE_OBJ_1, PROPRIETE_OBJ_2, PROPRIETE_OBJ_...
liée (1:n) à plusieurs tables (une dizaine) sur le champ IDOBJ:
avec parfois encore d'autres tables liées à une table DEPn.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DEP1: IDOBJ, PROPRIETE_DEP1_1, PROPRIETE_DEP1_2, DEP2: IDOBJ, PROPRIETE_DEP2_1, PROPRIETE_DEP2_2,
Je voudrais comparer, globalement, les objets de mêmes noms les plus récents sur chacun des ENV.
Le résultat attendu serait:
avec Version: quelque chose comme un checksum de l'objet complet tel que défini dans la table OBJ et les tables dépendantes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 NOM "Version" INT REC PPR PRD ------- ---------- -------- --------- --------- --------- OBJ1 1 1 1 1 1 OBJ2 1 1 0 0 0 OBJ2 2 0 1 1 1 OBJ3 1 1 0 0 0 OBJ3 2 0 1 0 0 OBJ3 3 0 0 0 1
et INT, REC, PPR, PRD: le nombre de fois (1 au plus par construction) où l'objet apparaît avec cette version dans chacun des environnements.
(Ce genre de présentation, sous Oracle, s'obtient avec PIVOT, mais je serais également content avec la présentation suivante:
Mais comment puis calculer facilement un tel champ de "version" de mon objet?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 NOM "Version" ENV ------- -------- ------- OBJ1 1 INT OBJ1 1 REC OBJ1 1 PPR OBJ1 1 PRD OBJ2 1 INT OBJ2 2 REC OBJ2 2 PPR OBJ2 2 PRD OBJ3 1 INT OBJ3 2 REC OBJ3 3 PRD
Voilà le problème brut, si quelqu'un a une idée pour le mettre en œuvre simplement, je suis preneur!
Merci d'avance!
Partager