IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Deski Discussion :

Fonction Max() comportement normal ?


Sujet :

Deski

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut Fonction Max() comportement normal ?
    Bonjour,

    J'ai créé une table toute simple afin de tester le comportement des fonction Max. et Min. sous Deski.

    Ma table se présente comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE CSOESSAI (Col1 CHAR(5), Col2 INT)
    La table alimentée :

    a 1
    a 3
    a 5
    b 10
    b 8

    Sous Designer : Col1 est une dimension et Col2 un indicateur sans agrégation (type = Aucun).

    Ci-dessous, mes données dans Deski :



    J'ai créé une simple variable "varessai" :



    N'ayant aucun agrégation de Col2 et selon la définition de Max. donnée dans BO, je m'attends donc à avoir pour a et b le maximum de Col2 soit :

    a 5
    b 10

    A la place, le tableau renvoyé en utilisation la fonction est :



    Ce comportement est-il à votre sens normal ou ai-je loupé quelque chose ?

    Je vous remercie et bonne journée,

    C. Tobini

  2. #2
    Membre expérimenté
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Points : 1 342
    Points
    1 342
    Par défaut
    bonjour,

    Apparemment, dans ton cas la fonction max.() ajoute une fonction implicite d’agrégat somme() à ta formule...

    J'ai toujours utilisé une fonction d’agrégat dans la définition de mes indicateurs.

    As-tu essayer de définir la fonction d’agrégat à somme() et vérifier le tableau que tu obtiens dans ce cas ?
    ~ Bastoonet ~

    Consultant BI

  3. #3
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut
    Pourquoi le définir en Indicateur alors que tu veux qu'il se comporte en Dimension ?

    Sinon essaie çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    max([col2] dans ([col1];[col2]))

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Bonjour et merci de la réponse,

    Citation Envoyé par bastoonet Voir le message
    bonjour,

    Apparemment, dans ton cas la fonction max.() ajoute une fonction implicite d’agrégat somme() à ta formule...

    J'ai toujours utilisé une fonction d’agrégat dans la définition de mes indicateurs.

    As-tu essayer de définir la fonction d’agrégat à somme() et vérifier le tableau que tu obtiens dans ce cas ?
    Je ne comprends pas : me proposes-tu d'ajouter Somme à la définition de l'indicateur dans l'univers ou Somme() à la variable créée ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Bonjour et merci de l'intervention,

    Citation Envoyé par djam21 Voir le message
    Pourquoi le définir en Indicateur alors que tu veux qu'il se comporte en Dimension ?

    Sinon essaie çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    max([col2] dans ([col1];[col2]))
    Pourquoi qu'il se comporte en tant que Dimension ? C'est un élément pouvant être agrégé et en plus il prend un indicateur en input. A moins que je ne comprenne pas bien ta proposition ?

    Je vais essayer le code proposé dès demain

  6. #6
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut
    Essaie de mettre la fonction d'aggrég max dans ton indicateur aussi au niveau de l'univers :

    SELECT : max(col2)
    FONCTION AGGREG : Max

  7. #7
    Membre expérimenté
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Points : 1 342
    Points
    1 342
    Par défaut
    ... je te propose d'ajouter somme() comme fonction d'aggregat dans ton univers dans la définition de ton indicateur et de vérifier ensuite son comportement dans ton même tableau dans u nrapport BO.

    ... le max.() aura peut etre dans ce cas le comportement souhaité. Je n'ai pas BO sous la main, mais la réponse m'interesse.
    ~ Bastoonet ~

    Consultant BI

  8. #8
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut
    Ajouter l'aggrégation Somme ne servira pas ici... Il aura comme résultat 9 et 18 sans possibilité d'obtenir les détails.

  9. #9
    Membre expérimenté
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Points : 1 342
    Points
    1 342
    Par défaut
    ..et si ça ne fonctionne pas....peut-être avec

    =Max.(<col2>) Pourchaque (<col2>) ?
    ~ Bastoonet ~

    Consultant BI

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par djam21 Voir le message
    Essaie de mettre la fonction d'aggrég max dans ton indicateur aussi au niveau de l'univers :

    SELECT : max(col2)
    FONCTION AGGREG : Max
    A ce niveau, et sans utiliser la fonction Max(), j'obtiens ce que je veux

    J'aimerais bien comprendre pourquoi ça ne fonctionne pas, j'avoue que ça me laisse perplexe...

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Je fais une petite réponse générale pour dire que Somme(), Max(), PourChaque... ne fonctionnent pas dans mon exemple.

  12. #12
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut
    Si tu déclare COL2 en dimension, tu n'as plus de pb... Peut-être que Webi force l’agrégation dès que tu veux faire une formule pour un indicateur...

    Va savoir... Un bug...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par djam21 Voir le message
    Va savoir... Un bug...
    Malheureusement, entre le fait que quelques bugs semblent traîner de ci de là et le fait qu'il n'y ait pas de cours à proprement parlé sur BO, je trouve le développement bien compliqué à prendre en main.

  14. #14
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut
    Des cours ? Si, tu peux tjs payer des formations à SAP

    Ils t'en feront avec grand plaisir...

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    petite précision, lorsque vous dites :
    Sous Designer : Col1 est une dimension et Col2 un indicateur sans agrégation (type = Aucun).

    En fait le comportement de l'indicateur Col2 (mesure) définit dans le Designer est en premier le comportement au niveau de la requête.
    Aucun : n'aura aucun effet au niveau de la requète, pas de "groupe by" !
    Sum : Appliquera une somme du champs toujours au niveau de la requète, plus utilisation de la clause "groupe by" !
    etc...

    Ensuite, il y a le comportement de la mesure au sein du rapport, par défaut BO End User utilise le comportement établi dans la couche Designer.
    Pour le cas de 'Aucun', il appliquera par défaut une somme qui est la fonction par défaut, ce qui explique les résultats obtenu.

Discussions similaires

  1. Réponses: 33
    Dernier message: 07/02/2008, 10h43
  2. [SQL Server 8] fonction Max --- selon des conditions
    Par Baquardie dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2006, 21h06
  3. fonction MAX
    Par javaSudOuest dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/09/2005, 18h12
  4. Fonction MAX dans une condition WHERE
    Par borgfabr dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 16h06
  5. Fonction max d'un tableau de variables...
    Par Romalafrite dans le forum ASP
    Réponses: 7
    Dernier message: 20/07/2004, 10h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo