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

ODI (ex-Sunopsis) Discussion :

DECODE ET SUM


Sujet :

ODI (ex-Sunopsis)

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut DECODE ET SUM
    Comment faire pour procéder à un test et une somme de plusieurs élèments en fonction du résultat du test.
    J'ai essayé la fonction décode, mais elle ne peut pas se combiner avec la fonction SUM qui est une fonction globale. Existe t-il une astuce ou une autre fonction sur SUNOPSIS ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 82
    Par défaut
    Un case te permettras surement de faire ce que tu veux:

    Case when Mon_test=1 then sum (a,b,c)
    else sum(d,e,f) end


    Ta syntaxe va dépendre de la technologie sur laquelle tu exécute ton mapping...
    Si c'est du SGBD ceci devrait passer.
    Si c'est du File il est evident qu'il va te falloir changer la destination du Mapping (Source, Cible, ou Autre).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut
    Citation Envoyé par bmontandon Voir le message
    Un case te permettras surement de faire ce que tu veux:

    Case when Mon_test=1 then sum (a,b,c)
    else sum(d,e,f) end


    Ta syntaxe va dépendre de la technologie sur laquelle tu exécute ton mapping...
    Si c'est du SGBD ceci devrait passer.
    Si c'est du File il est evident qu'il va te falloir changer la destination du Mapping (Source, Cible, ou Autre).
    J'ai eu ce genre de problème, et le risque est que la/les colonne(s) du test Mon_test ne soient pas dans d'autre mapping. et donc ne sont pas dans le group by. et par conséquant le SGBD retourne une erreur.

    Je vois 2 solutions :

    - soit tester sur un max ou min des colonnes du test (à voir si cela ne change pas la sémantique de la requête).
    - soit remonter le sum au maximum en faisant un sum(case when...), le case when sera interpréter au niveau de chaque ligne et non plus au niveau du group by.


    Hope this help.

    Benoit.

Discussions similaires

  1. Pb update avec jointure et sum et decode
    Par lepetitjo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2013, 17h55
  2. DECODE et SUM
    Par dieurdieuf dans le forum SQL
    Réponses: 10
    Dernier message: 20/06/2008, 09h35
  3. [Optimisation] instruction decode, SUM, * / + -...
    Par Bicnic dans le forum Oracle
    Réponses: 1
    Dernier message: 12/05/2006, 09h21
  4. sum(XPATH) retourne NaN
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 19/03/2003, 13h48
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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