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 :

Opérateur de statistique


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Opérateur de statistique
    Bonjour à tous,
    j'ai une table "CAS" avec les colonnes suivantes qui contiennent:.
    ID_Etablissement -->compteur
    Etablissement -->Texte (Paris, Lyon, Marseille etc...
    CATJ-->Texte (X, I, SO)
    CATT-->Texte (X, I, SO)
    CATTD-->Texte (X, I, SO)
    etc....
    je voudrais que ma requete me retourne pour un Etablissement sélectionné le nombre de X de toutes les autres colonnes.

    j'ai cette requete qui fonctionne mais que sur une seule colonne.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT Count(*) AS VarNb FROM [CAS] WHERE Etablissement='Paris' AND catj='X';"
    comment faire pour balayer toutes les autres colonnes?
    merci pour votre aide.

  2. #2
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut Re: Opérateur de statistique
    Citation Envoyé par Phil951
    comment faire pour balayer toutes les autres colonnes?
    merci pour votre aide.
    Comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT Count(*) AS VarNb FROM [CAS] WHERE Etablissement='Paris' AND (catj='X' or catt='X' or cattd='X'...)"
    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Avec ORACLE tu aurais un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT SUM(DECODE(catj , 'X', 1, 0)),
           SUM(DECODE(catt , 'X', 1, 0)),
           SUM(DECODE(cattd, 'X', 1, 0))
    FROM [CAS] WHERE Etablissement='Paris'
    Tu dois avoir un équivalent du DECODE dans ton SGBDR, si ce n'est pas ORACLE
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'utilise sql2000, je vais essayer les deux possibilitées, merci.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Re: Opérateur de statistique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT Count(*) AS VarNb FROM [CAS] WHERE Etablissement='Paris' AND (catj='X' or catt='X' or cattd='X'...)"
    Bloon,

    Cela me retourne 1 comme valeur alors qu'il y a 1 X dans chaque colonne, donc j'aurai du avoir 3 comme valeur, il me semble que le curseur s'arrete à la première colonne, c'est bien ça ?

  6. #6
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut

    j'ai mal lu la question !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT SUM(CASE CATJ WHEN 'X' THEN 1 ELSE 0 END) +
           SUM(CASE CATT WHEN 'X' THEN 1 ELSE 0 END)
    ...
    FROM [CAS]
    WHERE Etablissement='Paris'
    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bloon,
    je te remercie pour ton aide ... c'est excellent !!
    j'étais parti sur une fausse piste avec "COUNT"
    Thanx again

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

Discussions similaires

  1. opérateur statistiques
    Par philfont dans le forum Débuter
    Réponses: 2
    Dernier message: 26/08/2004, 10h42
  2. opérateur non applicable à ce type d'opérande
    Par Amon dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 18h07
  3. [imprecis]Réaliser a^n avec seulement l'opérateur d'addition
    Par Amon dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 08/11/2002, 22h22

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