|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Bonjour,
Je commence à me mettre aux fonctions analytiques, avec pour but de les utiliser pour certains calculer indicateurs d'un univers BO. Mon premier essai a été assez décevant, tout était OK avec Toad, mais ensuite j'ai construit un indicateur du genre SUM(montant * RATIO_TO_REPORT(...) OVER(...)), et Oracle m'a envoyé un message très frustrant du genre "les fonctions de fenêtrage sont interdites ici". J'imagine que je devrais sortir mon RATIO_TO_REPORT du SUM et l'utiliser comme fonction d'agrégation, mais je n'ai pas encore testé. Plus largement, certains d'entre vous ont-ils déjà utilisé les fonctions analytiques dans un univers BO ? avez-vous plus d'expérience sur leur comportement face à un GROUP BY ? |
|
|
00
|
|
|
#2 | ||||||
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Je n'ai pas utilisé dans un univers BO mais comme tu l'as remarqué les fonctions analytiques sont uniquement utilisables dans la liste de la clause SELECT. Donc même avec GROUP BY, il est impossible d'agréger sur une fonction analytique.
Maintenant, la fonction analytique est utilisable avec GROUP BY si toute colonne référencée dans la fonction analytique apparaît également dans la clause GROUP BY. Mais le sens n'est peut-être pas ce que tu cherche! A titre d'exemple la requête suivante Code :
Code :
Code :
__________________
Consultant et formateur Oracle |
||||||
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() ![]() Inscription : décembre 2003 Messages : 480 ![]() |
quel est le code d'erreur exact et quel est ton sql complet ?
__________________
*** OPN Exadata Specialist *** *** OCE Performance Tuning 11g *** *** OCE Rac 10g *** *** OCP DBA 9i-10g-11g *** |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Le message d'erreur est
Code :
ORA-30483: window functions are NOT allowed here Code :
SUM(montant * RATIO_TO_REPORT(montant) OVER (personne, projet) * taux_de_conversion) J'en déduis que les fonctions analytiques sont inutilisables dans BO, à moins de passer par des vues ou des "tables dérivées" qui réduisent leur intérêt... Je me déplace dans le forum BO, histoire de voir si quelqu'un a une expérience à ajouter... |
|
|
00
|
|
|
#5 | ||
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 185 ![]() |
Bonjour, Antoun, Michel et Marc ...
Suis super content de voir des passionnés de SQL Oracle sur le forum BO, c'est pas si fréquent, et pourtant... une grosse part de la richesse de l'outil se détermine bien là dans Designer. Au sujet de l'emploi des fonctions analytiques et du Group by permanent de BO j'aurais deux remarques à formuler. Les fonctions analytiques dans le select de l'objet ne peuvent être que refusées car BO serait bien en peine d'imbriquer (ou plutôt fédérer) des termes de select aussi disparates que ceux que l'utilisateur peut générer par son choix d'objets. Le group by automatique dans BO peut s'éviter si besoin est en annulant dans la définition des objets la sommation par défaut en cas d'agrégation. Enfin, je n'ai pas testé les fonctions analytiques dans Designer (mon parti pris étant d'appuyer mes univers sur des tables infocentre précalculées selon des axes d'agrégations précis où l'emploi des fonctions analytiques se situe dans mon PL/SQL de traitement et pas dans l'univers). Pour autant, cela vaudrait peut être la peine d'employer ces fonctions analytiques non pas dans le select de l'objet mais dans une Table Dérivée (à partir de la V6). Ce qui fait que, pour reprendre l'exemple de Michel,on peut imaginer (je n'ai pas testé) obtenir Code :
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!" |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com