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 :

Addition de 2 colonnes


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut Addition de 2 colonnes
    Bonjour j'aimerais avoir la difference nommé SALAIRE des colonnes PAYE ET RETENU. voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select s.nummatric, s.nom, s.prenom,
          sum(case when r.sens='+' then e.montant else null end) "PAYE",
          sum(case when r.sens='-' then e.montant else null end) "RETENU"
    from rubrique r, elements e, salarie s
     where e.norubrique=r.norubrique
     and e.nummatric=s.nummatric
     and  (PAYE - RETENU) as "SALAIRE" <--- Erreur<---
     group by s.nom, s.prenom, s.nummatric;
    Quelques soit l'endroit où j'insers cette ligne (PAYE - RETENU) as "SALAIRE", il me donne des erreurs.
    Merci de m'aider

  2. #2
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut Addition de 2 colonnes
    Bonjour j'aimerais avoir la difference nommé SALAIRE des colonnes PAYE ET RETENU. voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT s.nummatric, s.nom, s.prenom,
          sum(case when r.sens='+' then e.montant else NULL end) "PAYE",
          sum(case when r.sens='-' then e.montant else NULL end) "RETENU"
    FROM rubrique r, elements e, salarie s
     WHERE e.norubrique=r.norubrique
     AND e.nummatric=s.nummatric
     AND  (PAYE - RETENU) AS "SALAIRE" <--- Erreur<---
     GROUP BY s.nom, s.prenom, s.nummatric;
    Quelques soit l'endroit où j'insers cette ligne (PAYE - RETENU) as "SALAIRE", il me donne des erreurs.
    Merci de m'aider

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Quelle est l'utilité de l'alias dans la clause where ?

  4. #4
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    je veux juste ne pas me tromper dans mes instructions, sinon tu peux m'aider ou pas??

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    supprimer simplement cet alias inutile
    AND PAYE - RETENU = ...

  6. #6
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    après égale, je met "SALAIRE" ainsi ou comment ??

    AND PAYE - RETENU = "SALAIRE" ??

    Merci

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    impossible d'utiliser les alias dans la claure where!
    impossible egalement d'avoir des fonctions de groupe dans la clause where.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    select s.nummatric, s.nom, s.prenom,
          sum(case when r.sens='+' then e.montant else null end) "PAYE",
          sum(case when r.sens='-' then e.montant else null end) "RETENU"
    from rubrique r, elements e, salarie s
     where e.norubrique=r.norubrique
     and e.nummatric=s.nummatric
    having 
          ( sum(case when r.sens='+' then e.montant else null end) 
          - sum(case when r.sens='-' then e.montant else null end) )
    > 0  
     group by s.nom, s.prenom, s.nummatric;

  8. #8
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Merci pour ton intervention, mais moi ce que je vourais afficher, c'est le calcul de ça :

    ( sum(case when r.sens='+' then e.montant else NULL end)
    - sum(case when r.sens='-' then e.montant else NULL end)
    c'est vrai que ton intervention m'a éclairer mais je voudrais l'afficher comme l'alias SALAIRE. Merci

    Parce que ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT s.nummatric, s.nom, s.prenom,
          sum(case when r.sens='+' then e.montant else NULL end) "PAYE",
          sum(case when r.sens='-' then e.montant else NULL end) "RETENU"
    FROM rubrique r, elements e, salarie s
     WHERE e.norubrique=r.norubrique
     AND e.nummatric=s.nummatric
    HAVING 
          ( sum(case when r.sens='+' then e.montant else NULL end) 
          - sum(case when r.sens='-' then e.montant else NULL end) )
    > 0  
     GROUP BY s.nom, s.prenom, s.nummatric;
    Me donne comme reponse :

    NUMMATRIC NOM PRENOM PAYE RETENU
    ---------------------- -------------------- -------------------- ---------------------- ----------------------
    1001 Durand Paul 16000 1100
    1002 Pascal Blaise 22500 2000


    je voudrais afficher SALAIRE après RETENU qui est la difference de PAYE - RETENU

  9. #9
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Ne sera affiché que les termes présents dans la clause SELECT. Il ne sert donc a rien d'essayer de mettre des alias dans les autres partie (WHERE,GROUP BY, etc.)

  10. #10
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut RESOLU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT s.nummatric, s.nom, s.prenom,
          sum(case when r.sens='+' then e.montant else NULL end) as "PAYE",
          sum(case when r.sens='-' then e.montant else NULL end) as "RETENU",
          sum(case when r.sens='+' then e.montant else NULL end) - sum(case when r.sens='-' then e.montant else NULL end) "SALAIRE"
    FROM rubrique r, elements e, salarie s
     WHERE e.norubrique=r.norubrique
     AND e.nummatric=s.nummatric
     GROUP BY s.nom, s.prenom, s.nummatric;

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

Discussions similaires

  1. [Débutant] Addition de deux colonnes d'une table liée a un datagridview
    Par ibn05 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 20/03/2015, 15h09
  2. addition de vecteurs colonne et ligne
    Par Dam2227 dans le forum MATLAB
    Réponses: 5
    Dernier message: 18/05/2012, 00h38
  3. Réponses: 7
    Dernier message: 28/04/2010, 15h31
  4. Statistique sur addition de colonnes
    Par andreditdd dans le forum Bases de données
    Réponses: 7
    Dernier message: 04/03/2007, 15h54
  5. [VB.Net 05] Addition dans une colonne d'un DataGridView
    Par collaud_vb dans le forum Windows Forms
    Réponses: 13
    Dernier message: 26/09/2006, 16h53

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