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

  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 [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 ?
    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
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    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 ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  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
    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
    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
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    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;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  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 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.
    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

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

    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
    Points : 7 740
    Points
    7 740
    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 ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

+ 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