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

Langage SQL Discussion :

SUM dans une UNION


Sujet :

Langage SQL

  1. #1
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut SUM dans une UNION
    Bonjour,

    J'ai une table qui recense le niveau des personnes dans certaines competences construite comme ca
    index
    personne
    competence
    niveau

    Je cherche a recuperer les "personne" qui ont certaines "competence" et la somme de leur "niveau".

    J'ai fini par pondre le mammouth suivant (dans cet exemple je recupere les personnes ayant les competences 1 et 15)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT personne,niveau FROM competences
     WHERE competence=1 
        AND personne IN (SELECT personne FROM competences WHERE competence=15)
    UNION
    SELECT personne,niveau FROM competences
     WHERE competence=15
        AND personne IN (SELECT personne FROM competences WHERE competence=1)
    Malheureusement comme vous le voyez je n'arrive pas à me debrouiller dans cette somme (j'obtiens une somme pour chaque partie de l'union).

    Alors mes deux questions sont
    - Est-ce qu'il n'y a pas plus simple comme ecriture pour recuperer la liste des personnes ?
    - Peut-on faire la somme globale sur une union ?

    Je vous remercie pour votre aide.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 995
    Billets dans le blog
    6
    Par défaut
    Essayez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT personne, SUM(niveau) 
    FROM   competences
    WHERE  competence IN (1, 15)
    GROUP  BY personne
    HAVING COUNT(*) = 2

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Merci pour votre réponse c'est exactement ce que je voulais.

    J'etais parti logiquement sur une requete AND.

    Je n'aurais jamais pensé à une requete OR puis eliminer ceux qui ont moins de lignes que de criteres.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. sum() dans une jointure interne
    Par xenos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/07/2007, 17h42
  2. Plusieurs SUM dans une requête
    Par pj69100 dans le forum Requêtes
    Réponses: 6
    Dernier message: 02/01/2007, 10h34
  3. [ACCESS2002][fonction sum dans une requête]
    Par louroulou dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 09h26
  4. utiliser le resultat d'un SUM dans une variable
    Par Qapoka dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/05/2006, 15h47
  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