Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Webi
Webi Forum d'entraide Webi (client léger)
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 13/11/2007, 09h56   #1
Membre à l'essai
 
Inscription : novembre 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France

Informations forums :
Inscription : novembre 2007
Messages : 41
Points : 22
Points : 22
Envoyer un message via MSN à mleonetti
Par défaut utilisation réference max (min) dans subquery de WEBI ?

Bonjour , je travaille actuellement sur BO version XI
et je ne sais pas trop comment coder afin de ne récupérer que les données correspondant à la dernière valeur d'une période.

En fait en Sql cela correspond a une sub query de ce type :
Code :
1
2
3
SELECT ............   FROM  ............ A    WHERE ............
 
AND A.champ = ( SELECT max(X.champ)    FROM ........ X   WHERE   X. refer = A.refer  AND  X.year = A.year)
la solution du max sur la colonne du report ne convient pas pour la période c'est Ok , mais pour le montant le max n'est pas forcement la valeur de la dernière période.

les solutions de type designer ou Webi sont les bienvenues
mleonetti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 11h10   #2
Membre émérite
 
Avatar de Ayana
 
Inscription : décembre 2005
Messages : 901
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 901
Points : 900
Points : 900
Le "Où", en WebI et en DeskI, sont équivalent à ton "WHERE".

Peut-être devrais-tu chercher dans cette direction ...

=<champ_voulu> Où (<date>= Maximum(<date> Dans (<Dimension_date>)))
__________________
--= Ayana =--
Modératrice B.I.

Règles du forum BO

Team BAB - Spécialistes BO

Rubrique BI de developpez.com
Ayana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 11h17   #3
Membre à l'essai
 
Inscription : novembre 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France

Informations forums :
Inscription : novembre 2007
Messages : 41
Points : 22
Points : 22
Envoyer un message via MSN à mleonetti
ok je vais essayer cela mais je pense devoir le faire dans Designer car je n'ai pas trouvé la fonction max dans la partie requete de webi, et si je definis un objet dans mon report : pas accessible dans requête.

En tout cas merci de ton aide je suis nouvelle sur le site et je trouve cela super

ce matin j'ai essaye cela et cela fonctionne , mais ps top
pour livraison univers aux Keys users, nous travaillons beaucoup avec des dates d'effet

REQUETE :
SQL :
SQL PERSONNALISE :
EN FIN DE REQUETE J'AI AJOUTE :

Code :
AND (ps_depreciation.end_pd = (SELECT max(x.end_pd) FROM ps_depreciation x WHERE ps_depreciation.business_unit = x.business_unit   AND ps_depreciation.asset_id = x.asset_id   AND ps_depreciation.fiscal_year = x.fiscal_year))
mleonetti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 11h31   #4
Membre émérite
 
Avatar de Ayana
 
Inscription : décembre 2005
Messages : 901
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 901
Points : 900
Points : 900
Je suis vraiment d'humeur gentille .... la fonction max existe !! C'ets une fonction de base tout de même !

Qu'elle ne marche sur une date est un autre problème, mais elle existe, ça c'est sûr.


http://support.businessobjects.com/d...es/default.asp
Français > BusinessObjects XI > Web Intelligence > Analyse en Direct avec Web Intelligence

page 206
__________________
--= Ayana =--
Modératrice B.I.

Règles du forum BO

Team BAB - Spécialistes BO

Rubrique BI de developpez.com
Ayana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 11h43   #5
Membre à l'essai
 
Inscription : novembre 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France

Informations forums :
Inscription : novembre 2007
Messages : 41
Points : 22
Points : 22
Envoyer un message via MSN à mleonetti
je suis allée dans customer de BO mais pas trouve !


voici les fonctions proposées dans onglet requete webi :Pièce jointe 21611
mleonetti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 11h54   #6
Membre émérite
 
Avatar de Ayana
 
Inscription : décembre 2005
Messages : 901
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 901
Points : 900
Points : 900
Ah bé non, c'est pas là qu'il faut le faire .

Une fois que tu as généré ton tableau, il faut créer une variable dans ton rapport.
En haut, tu as une barre de fonction comme dans Excel
__________________
--= Ayana =--
Modératrice B.I.

Règles du forum BO

Team BAB - Spécialistes BO

Rubrique BI de developpez.com
Ayana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 11h58   #7
Membre à l'essai
 
Inscription : novembre 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France

Informations forums :
Inscription : novembre 2007
Messages : 41
Points : 22
Points : 22
Envoyer un message via MSN à mleonetti
oui je suis d'accord mais en fait je voulais le faire dans l'extraction des données


j'ai aussi pense a faire une table derivée dans designer
mleonetti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 17h26   #8
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
J'opterais moi aussi pour une solution de table dérivée, c'est pas le boulot de BO ... Mais quelle version d'Oracle as tu(car je crois reconnaître du sdl oracle non ?)

Le SQL de la table dérivée sera très différent en
ORACLE V8 PAS DE FONCTIONS ANALYTIQUES
ORACLE V9 UN PEU FONCTIONS ANALYTIQUES
ORACLE V10 BEAUCOUP DE FONCTIONS ANALYTIQUES

EN V8 je corrigerais ton premier SQL
Code :
1
2
3
SELECT ............   FROM  ............ A    WHERE ............
 AND A.champ = ( SELECT max(X.champ)    FROM ........ X   
WHERE   X. refer = A.refer  AND  X.year = A.year)
comme ceci :
Code :
1
2
3
4
5
6
7
8
9
10
SELECT A.CHAMP1, A.CHAMP2,  X.LeMaxChamp
FROM 
( SELECT Y. refer, Y.year, max(Y.champ) as LeMaxChamp 
 FROM ........ Y 
 GROUP BY Y. refer, Y.year) X, 
 MATABLE A 
 WHERE ............
 AND A.champ = X.LeMaxChamp 
 AND A. refer = X.refer 
 AND A.year = X.year
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 09h17   #9
Membre à l'essai
 
Inscription : novembre 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France

Informations forums :
Inscription : novembre 2007
Messages : 41
Points : 22
Points : 22
Envoyer un message via MSN à mleonetti
Merci de ta réponse Bruno
c'est effectivement la voie que j'ai prise un table agregat dans univers, le SGBD n'est pas ORACLE mais DB2 V7, effectivement le SQL est équivallent, j'ai passé au scan DB2
mleonetti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 09h59   #10
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Oui DB2 !

Effectivement j'ai croisé DB2 il y a quelques années pour un infocentre, c'est même là dessus que j'ai commencé mes premiers pas en SQL, c'est vrai que Oracle est assez proche pour la partie qu'on pourrait appeler SQL STANDARD.

Bon, d'une manière générale, les difficultés SQL viennent souvent d'une tendance spontanée à vouloir tout resoudre en 1 SELECT et plein de clauses where sur plein de tables.

Il est + simple, plus lisible et souvent + performant de faire
1 SELECT sur des SELECT
Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT 
A.champ1, A.Champ2, ...
B.champ1, B.Champ2, ... 
C.champ1, C.Champ2, ... 
FROM
(SELECT .... FROM TABLE_3 WHERE .....) C,
(SELECT .... FROM TABLE_2 WHERE ....) B,
(SELECT .... FROM TABLE_1 WHERE ....) A
WHERE 
A.ID = B.ID éventuellement A.ID = B.ID(+)
AND B.ID = C.ID éventuellement B.ID = C.ID(+)
l'ordre n'est pas anodin :
Si la table_1 fait 200000 lignes et que la clause where sur cette table dans A n'en ramène que 500, c'est le résultat de ces 500 qui sera mis en jointure avec B (résultat sur Table_2) et le résultat sur C

A +
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r 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 05h09.


 
 
 
 
Partenaires

Hébergement Web