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

Oracle Discussion :

[report 6] somme de colonnes appartenant à des groupes différents


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    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
    Par défaut [report 6] somme de colonnes appartenant à des groupes différents
    Bonjour tout le monde,

    Je suis en train de migrer un état cobol sous report 6i et je rencontre un problème qui n'existe pas en cobol.
    Comment faire la somme de plusieurs colonnes appartenant à des groupes différents sachant que chaque colonne est cumulé si et seulement si elle satisfait une condition (portant sur une autre colonne) ?

    Toutes mes tentatives produisent des erreurs report car :
    1/ je mets du code concernant une même colonne dans plusieurs formules différentes
    2/ j'affecte le résultat d'une somme à une variable appartenant au même groupe que ces données sources
    3/ etc.

    Aurais-je atteint les limites de report ?

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu peux donner un exemple stp ?
    Est ce que les groupes sont sur 2 requetes différentes ou sur la même requete ?

  3. #3
    Membre Expert

    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
    Par défaut
    Merci de t'intéresser à mon problème McM,

    Comme tu le demandes je te donne plus d'explications et en même temps la réponse, que j'ai trouvé dans la doc report 6i quelques heures plus tard

    Voici mon modèle de données simplifié : http://arachequesne.developpez.com/O...NFO_me2921.jpg

    J'ai encadré en noir la colonne que je souhaite calculer : sa valeur est égale à la somme des colonnes en rouge (appartenant à 2 groupes différents).

    La solution que j'ai mise en place consiste à définir une colonne de formule (encadrée dans mon schéma en vert), qui met à jour la valeur de la colonne de réserve en noir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    FUNCTION PRIX_BUDGETE_MSFormula RETURN NUMBER IS
    BEGIN
      :PRIX_BUDGETE_MS := NVL(:PRIX_BUDGETE_MS,0) +
      										NVL(:SUM_MS1_PRIX_BUDGETE_MS,0) +
      										NVL(:SUM_MS2_PRIX_BUDGETE_MS,0) +
      										NVL(:SUM_MS4_PRIX_BUDGETE_MS_P,0) +
      										NVL(:SUM_RHA1_PRIX_BUDGETE_MS_P,0);
      RETURN (:PRIX_BUDGETE_MS); 
    END;
    Mais si tu veux vraiment m'aider sur Report McM, je risque fort de poster d'ici peu donc ce sera avec grand plaisir

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    C'est vraiment très bizarre ce que tu as fait ..

    Logiquement, une CF (colonne Formula) renvoie une valeur, elle ne fait pas d'affectation.

    normalement (sauf si j'ai pas compris le pb) :
    Tu n'as pas besoin de la colonne en vert.
    et ta colonne en noir (CF) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FUNCTION PRIX_BUDGETE_MSFormula RETURN NUMBER IS
    BEGIN
      RETURN (	NVL(:SUM_MS1_PRIX_BUDGETE_MS,0) +
      			NVL(:SUM_MS2_PRIX_BUDGETE_MS,0) +
      			NVL(:SUM_MS4_PRIX_BUDGETE_MS_P,0) +
      			NVL(:SUM_RHA1_PRIX_BUDGETE_MS_P,0)
    		);
    END;

  5. #5
    Membre Expert

    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
    Par défaut
    Citation Envoyé par McM
    C'est vraiment très bizarre ce que tu as fait ..
    Et pourtant c'est l'application EXACTE d'un exemple de la doc mais j'ai eu exactement la même réaction que toi quand j'ai décortiqué la solution présentée.

    Citation Envoyé par McM
    et ta colonne en noir (CF) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FUNCTION PRIX_BUDGETE_MSFormula RETURN NUMBER IS
    BEGIN
      RETURN (	NVL(:SUM_MS1_PRIX_BUDGETE_MS,0) +
      			NVL(:SUM_MS2_PRIX_BUDGETE_MS,0) +
      			NVL(:SUM_MS4_PRIX_BUDGETE_MS_P,0) +
      			NVL(:SUM_RHA1_PRIX_BUDGETE_MS_P,0)
    		);
    END;
    Impossible car la colonne en noir est une colonne de réserve et non une colonne de formule donc tu n'as pas de propriété pour écrire du code PL/SQL associé.
    D'où le besoin de passer par une colonne de formule (celle en vert sur mon schéma).
    En tout cas, c'est le raisonnement que j'ai eu en analysant l'exemple de la doc.

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Ok, la colonne de réserve j'ai trouvé (excuses moi j'ai mes outils de dev en anglais : Placeholder column)
    Visiblement (j'en utilise pas) c'est comme une variable que tu réaffectes quand tu le souhaites.

    Le code que j'ai donné, si tu l'affectes à la Colonne Formula et que tu l'affiches, ça donne pas le même résultat que ta colonne de réserve ?

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

Discussions similaires

  1. [SQL] Somme de colonnes sur des variables indicées
    Par blastfrance dans le forum SAS Base
    Réponses: 14
    Dernier message: 11/10/2018, 16h31
  2. Réponses: 2
    Dernier message: 06/06/2010, 15h15
  3. [XSLT] somme d'attributs dans des noeud différents
    Par ze_pat dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/12/2009, 13h58
  4. bas de colonne texte à des hauteurs différentes
    Par orphean dans le forum Mise en forme
    Réponses: 0
    Dernier message: 09/10/2008, 21h34
  5. Réponses: 7
    Dernier message: 15/03/2007, 08h50

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