Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Designer
Designer Forum d'entraide Designer (création d'univers, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2011, 10h58   #1
Futur Membre du Club
 
Homme
Inscription : juillet 2002
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2002
Messages : 67
Points : 19
Points : 19
Envoyer un message via AIM à gillou13
Par défaut Casse-tête sur compteurs

Bonjour à tous,

je bloque sur la réalisation de compteur sur un univers en création :

les tables :
DOSSIER(numdos, numop1, numop2)
OPERATION(numop, numdos, date1, date2, date3)

Les numdos et numopX sont les clées primaire, secondaire selon la tables.
Dans les faits : pour 1 dossier je peu avoir 0,1 ou 2 opérations. Les dates corresponde aux étapes a compter et pour 2 opérations d'un même dossiers les dates peuvent être différentes (on a convenu qu'il faut utiliser la plus récente pour mes compteurs)

Mon travail : Créer des compteurs Nb dossier à l'etape1, 2 et 3 pouvant être affiché dans un même tableau...

en testant plusieurs configurations de jointure (par numdos ou numopX), plusieurs methode de comptage(cout over, indiquateur nombre, etc) je n'arrive pas a créer des compteurs valides sur les dates par dossier.

Ex : avec jointure par numdos :
nb etape1 : count(distinct(dossier.numdos) over (partition by (operation.date1))
cette exemple me retourne une erreur dans Desk quand j'intégre 2 compteurs
nb etape1 : count(distinct(dossier.numdos)) WHERE operation.date1 IS NOT NULL
cette fois les clause where s'ajoute et j'ai le même nombre dans chaque colonnes...

la seul méthode que je n'ai pas encore testé c'est de réaliser une table dérivé via une grosse grosse recette SQL...

quelqu'un peu m'aider sur ce casse tête? svp

Merci d'avance.
gillou13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 11h06   #2
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
Bonjour,

Etant donné votre jointure, j'imagine que vous êtes sous Oracle.

Donc, le mieux à faire je pense est de créer une jointure externe entre les tables DOSSIERS et OPERATIONS sur numdos et numop1 avec numop.

Ensuite, refaire le même type de jointure entre DOSSIERS et un alias de la table OPERATIONS sur numdos et numop2 avec numop.

Ensuite, dans l'objet j'utiliserais un decode() pour tester les différentes valeurs de date et ramener l'étape correspondante.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 11h20   #3
Futur Membre du Club
 
Homme
Inscription : juillet 2002
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2002
Messages : 67
Points : 19
Points : 19
Envoyer un message via AIM à gillou13
Merci,

Je vais tester cette méthode de suite.
gillou13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 11h27   #4
Futur Membre du Club
 
Homme
Inscription : juillet 2002
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2002
Messages : 67
Points : 19
Points : 19
Envoyer un message via AIM à gillou13
petite question au niveau des jointures :

je doit réaliser une jointure complexe ou 2 jointures par table/alias d'opération?
gillou13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 12h40   #5
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
Personnellement je préfère mettre toutes les égalités dans une même jointure... Mais ça revient au même.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 14h57   #6
Futur Membre du Club
 
Homme
Inscription : juillet 2002
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2002
Messages : 67
Points : 19
Points : 19
Envoyer un message via AIM à gillou13
Alors, j'ai intégrer 2 jointures 'simple' juste avec numope. quand j’intègre les 2 clée, je ne peu pas faire de jointure externe.

et pour mes compteurs j'ai utilisé un case plutot qu'un decode :
Code :
1
2
3
4
5
6
 
CASE WHEN dossier.numope1 IS NULL AND dossier.numope1 IS NULL THEN 0
WHEN operation.date1 IS NOT NULL THEN 1
WHEN operation_a.date1 IS NOT NULL THEN 1
ELSE 0
END
je 'narivai pas a y integer le AND...

Merci
gillou13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 15h06   #7
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 670
Points : 5 670
Juste pour info :

Dans le cas d'un jointure à plusieurs égalités, on ne peut pas cocher la case "jointure externe" mais on peut le faire quand même en utilisant l'ancienne syntaxe. Ex :
Code :
TABLE1.CHAMP1 = TABLE2.CHAMP1(+) AND TABLE1.CHAMP2 = TABLE2.CHAMP2(+)
Ensuite, le CASE est une bonne solution. Seul hic, on ne peut pas utiliser l'objet dans les conditions d'une requête, contrairement au decode() qui le permet.
Par contre effectivement, il n'est pas possible de mettre plusieurs conditions dans un decode(). Mais on peut en général s'en sortir avec une imbrication de decode()
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/03/2011, 16h11   #8
Futur Membre du Club
 
Homme
Inscription : juillet 2002
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2002
Messages : 67
Points : 19
Points : 19
Envoyer un message via AIM à gillou13
ha...
si je peu pas utiliser mon objet dans une condition je suis mal!
Et imbriquer les decode() va bien m'aider dans ce cas la.

mais du coup je vais devoir 'doublonner' mes autres tables (4 en tous) qui sont liée avec operation.

PS : pour mes jointures je vais les laisser tel quel. Mes testes me trouve le même résultat avec 1 ou 2 égalités.

Et encor merci.
gillou13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 15h21   #9
Membre émérite
 
Avatar de bastoonet
 
Inscription : septembre 2006
Messages : 815
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 815
Points : 843
Points : 843
Pour les jointures externe, je crois qu'il y a un moyen de contournement pour les jointures externes complexes (sur plusieurs colonnes ou avec @prompt), il faut

- cocher 'jointure externe' en selectionnant juste une colonne de chaque table
- ensuite coller ou taper le SQL de la jointure complexe, multi-colonne
=> il doit garder la case jointure externe cochée et la griser ;-)

enfin ça marché chez moi en XIR2/DB2
__________________
~~ bastoonet ~~

"Team BAB - Spécialistes BO"
bastoonet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h47.


 
 
 
 
Partenaires

Hébergement Web