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

SQL Oracle Discussion :

Comment calculer la somme d'une colonne ? [11gR2]


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Par défaut Comment calculer la somme d'une colonne ?
    Bonjour,
    J'essaie de calculer la somme d'une colonne de table sans succès. En effet avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select id, kategorie,  periode, sum(somme,
    decode(plm*
    ' + ' decode ( freq, null, 1, freq ) * + 1, 
    ' - ' decode ( freq, null, freq ) * - 1 sokat)
    ) from Archive
    Where periode between to_date ( '01.2018', ' mm.yyyy)
    and to_date ( '12.2018', ' mm.yyyy)
    Group by id, kategorie, periode;
    La colonne sokat contient des valeurs aussi longtemps que j'execute la requête sans la condition where.
    Sinon cette colonne 'null'.

    J'ai besoin de votre aide svp
    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Erreurs de copier/coller?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Where periode between to_date ( '01.2018', ' mm.yyyy) ==> ajouter un ' après y
    and to_date ( '12.2018', ' mm.yyyy) ==> ajouter un ' après y
    Group by id, kategorie, periode;

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Par défaut Oui effectivement c'est une erreur de copier/ coller
    Oui effectivement c'est une erreur de copier/ coller.
    Désolée. Sinon je n'aurais jamais pu lancer cette requête

    Citation Envoyé par Ikebukuro Voir le message
    Erreurs de copier/coller?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Where periode between to_date ( '01.2018', ' mm.yyyy) ==> ajouter un ' après y
    and to_date ( '12.2018', ' mm.yyyy) ==> ajouter un ' après y
    Group by id, kategorie, periode;

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Bonjour,
    Je ne comprends pas bien cette partie de la requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sum(somme,
    decode(plm, 
    ' + ' decode ( freq, null, 1, freq ) * + 1, 
    ' - ' decode ( freq, null, freq ) * - 1 sokat)
    Sum ne prend qu'un seul paramètre, l'expression à cumuler.
    Est-ce que tu peux détailler ce que tu cherches à faire ici ?

    Tatayo.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Par défaut
    En plus de sélectionner les autres colonnes, je cherche à faire la somme des valeurs de la colonne somme en fonction du signe qui se trouve dans la colonne 'plm' (+ ou -).
    En fait tu as raison une erreur s' est glissée. Après le 'somme' dans la fonction 'sum' vient plutôt un '* ' et pas une virgule.

    J'ai corrigé

  6. #6
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Quand tu dis "La colonne sokat contient des valeurs aussi longtemps que j'execute la requête sans la condition where", tu es sûr qu'il y a bien des valeurs pour "Where periode between to_date ( '01.2018', ' mm.yyyy')
    and to_date ( '12.2018', ' mm.yyyy')"?

    Que t'affichent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select to_date ( '01.2018', ' mm.yyyy') from dual;
    select min(periode), max(periode) from Archive;
    select count(*) from Archive where periode between to_date ( '01.2018', ' mm.yyyy) and to_date ( '12.2018', ' mm.yyyy);

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

Discussions similaires

  1. comment calculer la somme d'une série
    Par osabri dans le forum Débuter
    Réponses: 10
    Dernier message: 14/03/2010, 16h27
  2. Réponses: 7
    Dernier message: 25/01/2010, 11h24
  3. Réponses: 10
    Dernier message: 12/01/2010, 11h06
  4. comment calculer la somme d'une colonne d'un dbgrid
    Par kirty dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/07/2006, 20h55

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