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 :

Utilisation de case


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 39
    Par défaut Utilisation de case
    bonjour
    j'essaye de faire quelque chose avec case, mais je ne sais pas si c'est possible

    voilà ma requette simplifiée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     SELECT 
    region,
    case nocli 
        when 11001 then 'gros client 1' 
        when 14402 then 'gros client 2' 
    else
        'autres clients,
    sum(quantite)
    FROM ventes
    WHERE 
    annee=07
    je souhaite que l'instruction case soit basée sur une table externe, vu que le nombre des gros clients peut augmenter ou s'agrandir. je ne voudrai pas avoir à reprendre ma requete à chaque changement.

    après de vaines recherches, je me tourne vers des specialistes.

    merci de votre aide
    bruno

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Par défaut
    Bonjour ,
    A priori, tu n'as pas besoin de case ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT 
    region,
    coalesce(table_correpondance_nocli.libelle,'Pas défini')
    ,
    sum(quantite)
    FROM ventes,table_correpondance_nocli
    WHERE 
    annee=07
    and
    nocli=table_correpondance_nocli.nocli

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 143
    Par défaut
    Tu as toi-même parlé de table externe :
    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
    23
    24
    25
    26
    27
    28
    CREATE TABLE
        typeclient
        (   nocli   xxx
        ,   libcli  VARCHAR(n)
        )
    PRIMARY KEY nocli
    ;
    INSERT INTO typeclient
        (   nocli,  libcli  )
    VALUES
        (   11001,  'gros client 1');
    ;
    INSERT INTO typeclient
        (   nocli,  libcli  )
    VALUES
        (   14402,  'gros client 2');
    ;
    SELECT  vnt.region
        ,   COALESCE(typ.libcli, 'autres clients')  AS typcli 
        ,   SUM(vnt.quantite)
    FROM    ventes  AS vnt
        LEFT JOIN
            typeclient  AS typ
            ON  vnt.nocli = typ.nocli
    WHERE   vnt.annee = 07
    GROUP BY vnt.region
        ,   typcli
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 39
    Par défaut
    effectivement, la solution est simple
    pourquoi toujours chercher midi à 14 h ??

    merci
    bruno

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

Discussions similaires

  1. Utilisation de case dans un script
    Par mirlidas dans le forum Linux
    Réponses: 1
    Dernier message: 11/12/2006, 14h46
  2. Réponses: 21
    Dernier message: 21/07/2006, 16h55
  3. [Swing] Utilisation de cases à cocher
    Par gids01 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 25/04/2006, 15h21
  4. Réponses: 24
    Dernier message: 24/11/2005, 10h28
  5. [mySQL] Newbie : Utilisation de CASE
    Par SergeF dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/07/2005, 00h39

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