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

PL/SQL Oracle Discussion :

Comptage incluant les valeurs non trouvées


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut Comptage incluant les valeurs non trouvées
    Bonjour,
    Y a t il moyen dans une requete
    simple du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select prenom,sum(bon_points) from classe
    where prenom in ('julien','eric','paul','remi')
    group by prenom
    d'afficher systématiquement 4 lignes même si certains enfants ont 0 bon points ?

    merci
    Laurent

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Oui

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut
    Est que vous pouvez m'expliquer comment faire ?

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Est-ce que vous pouvez poster un petit jeu d’essai : création des tables, insertion des données, etc. ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut
    je ne comprends pas
    Ma requête test est simple et résume ma demande.

    LB

  6. #6
    Membre régulier Avatar de Morad ISSOULGHANE
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2009
    Messages : 98
    Points : 94
    Points
    94
    Par défaut
    Une solution simple mais pas très propre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT a.prenom, NVL(b.bon_points,0) bon_points
     
    (
    SELECT DISTINCT prenom FROM classe
    WHERE prenom IN ('julien','eric','paul','remi')
    ) a,
    (
    SELECT prenom,sum(bon_points) bon_points FROM classe
    WHERE prenom IN ('julien','eric','paul','remi')
    GROUP BY prenom
    ) b
    WHERE a.prenom = b.prenom (+)

  7. #7
    Membre confirmé
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Points : 542
    Points
    542
    Par défaut
    Bonjour,

    De cette manière on affiche tous les élèves qui se trouvent dans liste_prenoms que nous avons défini (même ceux qui ne sont pas dans la table classe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    WITH liste_prenoms AS 
    (
    SELECT 'julien' prenom_filtre FROM DUAL
    UNION ALL
    SELECT 'eric' prenom_filtre FROM DUAL
    UNION ALL
    SELECT 'remi' prenom_filtre FROM DUAL
    UNION ALL
    SELECT 'paul' prenom_filtre FROM DUAL
    )
    SELECT prenom_filtre,sum(nvl(bon_points,0)) FROM liste_prenoms
    LEFT OUTER JOIN classe ON prenom = prenom_filtre
    GROUP BY prenom_filtre
    Exemple avec quelques données de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    WITH classe AS 
    (
    SELECT 'julien' prenom , 1 bon_points FROM DUAL
    UNION ALL SELECT 'eric' prenom , 1 bon_points FROM DUAL
    UNION ALL SELECT 'eric' prenom , 3 bon_points FROM DUAL
    UNION ALL SELECT 'paul' prenom , 1 bon_points FROM DUAL
    UNION ALL SELECT 'paul' prenom , 5 bon_points FROM DUAL
    ), 
    liste_prenoms AS 
    (
    SELECT 'julien' prenom_filtre FROM DUAL
    UNION ALL
    SELECT 'eric' prenom_filtre FROM DUAL
    UNION ALL
    SELECT 'remi' prenom_filtre FROM DUAL
    UNION ALL
    SELECT 'paul' prenom_filtre FROM DUAL
    )
    SELECT prenom_filtre,sum(nvl(bon_points,0)) FROM liste_prenoms
    LEFT OUTER JOIN classe ON prenom = prenom_filtre
    GROUP BY prenom_filtre
    Résultat :

    PRENOM_FILTRE SUM(BON_POINTS)
    eric 4
    remi 0
    julien 1
    paul 6

  8. #8
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,
    Dans l'exemple que tu donnes, si les 4 enfants font partie de la table "classe", ils sortiront en résultat, qu'ils aient des bons points ou non.
    Le problème que tu décris supposerait que les "enfants avec bons points" sont stockés dans une autre table, et que tu n'aurais pas joint la table "classe" avec cette autre table en utilisant un outer join.
    Donc... il faut un exemple plus détaillé, et/ou savoir comment est remplie la table "classe" , etc ...
    @+


    Citation Envoyé par lbar012001 Voir le message
    Bonjour,
    Y a t il moyen dans une requete
    simple du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select prenom,sum(bon_points) from classe
    where prenom in ('julien','eric','paul','remi')
    group by prenom
    d'afficher systématiquement 4 lignes même si certains enfants ont 0 bon points ?

    merci
    Laurent
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

Discussions similaires

  1. Extraire les valeurs non nulles d'une matrice
    Par kwatz dans le forum MATLAB
    Réponses: 15
    Dernier message: 06/03/2009, 11h15
  2. Sortir d'une recherche quand valeur non trouvée
    Par Misha dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/10/2008, 12h43
  3. [Security] ACEGI et les pages non trouvées
    Par cyrille37 dans le forum Spring
    Réponses: 1
    Dernier message: 13/12/2007, 15h03
  4. Valeur non trouvé dans une requète SQL
    Par Jeankiki dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/12/2006, 16h36
  5. [Oracle] Ramener les valeurs non lié à un nom
    Par deaven dans le forum Langage SQL
    Réponses: 9
    Dernier message: 04/07/2006, 10h20

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