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

Forms Oracle Discussion :

[forms 6i / 9i] calcul de moyenne pondérée avec des items calculés


Sujet :

Forms Oracle

  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut [forms 6i / 9i] calcul de moyenne pondérée avec des items calculés
    Bonjour,

    Sous forms 6i et 9i, je cherche à mettre en place un calcul de moyenne pondérée dans un bloc multi lignes.
    Ex :
    +----+----+----------
    VOL PA MPOND
    ----------------------
    1 5
    2 3
    +----+----+----+----+
    MPOND = 3.67
    +----+----+----+----+
    La moyenne pondérée est obtenue en faisant :
    ( (1*5) + (2*3) ) / (1+2) = 3.67
    soit SUM( VOL * PA ) / SOM(VOL)

    En lisant l'article de Sheikyerbouti sur les items calculés, j'arrive quasiment à mettre en place ce calcul de moyenne pondérée mais j'obtiens un message d'erreur FRM-30401.
    L'origine de ce message d'erreur réside dans le fait que pour calculer cette moyenne pondérée, la seule solution que j'ai trouvée, consiste à passer par des items calculés intermédiaires :
    IT1 = VOL * PA
    IT2 = SUM(IT1)
    IT3 = SUM(VOL)
    MPOND = IT2 / IT3 = SOM( VOL * PA ) / SOM(VOL)

    Le message d'erreur est causé par le fait que IT2 est la somme d'un item calculé (i.e. IT1) par une formule utilisateur (c'est ce que j'en conclus quand je lis le descriptif du message d'erreur).

    Comment arriver à effectuer ce calcul de moyenne pondérée que ce soit avec des items calculés ou non ?
    Merci d'avance pour tout conseil, remarque, etc.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Je me permets de reformuler et simplifier ma question en supposant que je n'ai pas eu de réponse car j'ai été confus

    Dans un bloc multi lignes, j'ai 2 colonnes : PA et VOL pour lesquelles je souhaite calculer la moyenne pondérée en temps réel sachant que :
    - la moyenne pondérée = la somme du produit suivant pour chaque ligne : PA * VOL soit SUM( VOL * PA )
    - j'ai choisi d'utiliser les items calculés car je n'ai trouvé aucune autre manière de procéder pour disposer de cette information en temps réel.
    Quand l'utilisateur change une valeur de VOL ou PA pour n'importe quelle ligne alors le résultat doit être mis à jour automiquement.

    N'hésitez pas à me demander des précisions...
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    J'ai quasiment réussi à mettre en place ce traitement mais il faudrait que j'arrive à utiliser DECODE dans un item calculé de type FORMULE et Oracle génère une erreur lorsque je tente de saisir DECODE directement dans la formule.

    D'où ma question : comment saisir DECODE dans la formule d'un item calculé ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  4. #4
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 842
    Points : 983
    Points
    983
    Par défaut
    DECODE n'est utilisable que dans les requêtes SQL. C'est une fonction SQL, non une fonction PL/SQL.
    Une solution serait de créer une fonction utilisateur propre à la Form (Program Unit) ou dans une librairie PL/SQL.
    Tu passes les paramètres à la fonction dans laquelle tu reproduis la fonction du DECODE avec des IF THEN ELSE et tu retourne le résultat dans l'item calculé.
    A tester
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par star
    A tester
    C'est effectivement la solution que j'ai retenue et qui marche puisqu'elle m'a permis de terminer la mise en place de ces moyennes pondérées.

    Je te remercie quand même de ton intérêt pour ce post, ôh combien impopulaire
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Moyenne pondérée avec 2 conditions
    Par toto2703 dans le forum Excel
    Réponses: 6
    Dernier message: 30/09/2013, 13h50
  2. [XL-2007] macro pour calculer la moyenne pondérée
    Par barbie-9 dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 02/09/2013, 17h38
  3. Réponses: 2
    Dernier message: 23/05/2013, 18h14
  4. [AC-2003] Fonction de moyenne pondéré avec plusieurs conditions
    Par Piccou dans le forum VBA Access
    Réponses: 34
    Dernier message: 14/08/2009, 12h07
  5. Programmation Shell avec Red Hat Calcul de moyenne
    Par jcpoulard dans le forum Linux
    Réponses: 3
    Dernier message: 22/02/2006, 22h08

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