F.A.Q. Business-ObjectsConsultez toutes les FAQ

Nombre d'auteurs : 15, nombre de questions : 101, dernière mise à jour : 2 septembre 2018 

 
OuvrirSommaire DesignerTables dérivées (V6 - XI)

La version 6 permet au Designer de créer des Tables Dérivées qui sont équivalentes à des vues Oracle, c'est à dire définies à l'aide de SQL s'appuyant sur les tables existantes.

Une table calendrier est très utile dans un univers et peut être obtenue à peu de frais en créant une table dérivée

Procéder de la façon suivante :

  • Créer une Table Dérivée.
  • Créer les objets Dimension correspondants.
  • Etablir entre ce champ et le champ Date de la table de données une jointure externe.
 
Sélectionnez
SELECT 
to_date('20080101','yyyymmdd') + (rownum - 1) as JOURID, 
to_char(to_date('20080101','yyyymmdd') + (rownum - 1), yyyymm') as ANNEEMOIS,
to_char(to_date('20080101','yyyymmdd') + (rownum - 1), 'yyyy') as ANNEE
FROM dual
connect BY to_date('20080101','yyyymmdd') + (rownum - 1) <= to_date('20081231','yyyymmdd') as CALENDAR

Dans une Classe Calendrier, créer les objets Dimensions suivants :

  • ANNEE
  • ANNEEMOIS
  • JOURID

En établissant des jointures externes entre le champ Date de chaque table de données et le champ JOURID de la table dérivée,
(ces objets Dimensions permettront à l'utilisateur de rapatrier les données dans des suites ordonnées et continues (donc exhaustives) de dates provenant de la table dérivée CALENDAR et les données correspondantes lorsqu'elles existent.

 
Sélectionnez
CALENDAR.JOURID = TABLEDONNEES.LADATE(+)
Créé le 12 décembre 2007  par Bruno2r

Par exemple on a dans une table Table1 :

ID Valeur Type
2 10 A
2 20 B
2 30 C

Et on veut

ID A B C
2 10 20 30

Il faut définir une table dérivée dont le SQL est :

 
Sélectionnez

SELECT T1.ID, T1.VALEUR AS A, T2.VALEUR AS B, T3.VALEUR AS C
FROM (SELECT ID, VALEUR FROM Table1 WHERE TYPE='A') T1, 
(SELECT ID, VALEUR FROM Table1 WHERE TYPE='B') T2, 
(SELECT ID, VALEUR FROM Table1 WHERE TYPE='C') T3
WHERE T1.ID = T2.ID AND T1.ID = T3.ID
Créé le 10 juillet 2013  par TomDuBouchon

Par exemple on a dans une table Table1 :

ID A B C
2 10 20 30

Et on veut

ID Valeur Type
2 10 A
2 20 B
2 30 C

Il faut définir une table dérivée dont le SQL est :

 
Sélectionnez

SELECT ID, A AS Valeur, 'A' AS Type
FROM Table1
UNION ALL
SELECT ID, B, 'B'
FROM Table1
UNION ALL
SELECT ID, C, 'C'
FROM Table1
Créé le 10 juillet 2013  par TomDuBouchon
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.