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

Développement SQL Server Discussion :

Aide sur requête


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut Aide sur requête
    Bonjour,

    Je bloque juste sur une partie.

    Voici ma table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ARBITRE
    ID:INTEGER
    ID_ARBITRE: INTEGER (FK)
    ID_LIT: INTEGER(FK)
    POSITION: VARCHAR(10)
    Je voudrais récupérer une requête du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ID_ARBITRE || nombre de POUR || nombre de CONTRE || nombre de PRESIDENT
    Sachant que dans position il ne peut y avoir que POUR,CONTRE ou president comme varchar.

    - Je ne vois pas comment je peux récupérer sur trois champs ce qui ce trouve dans un.

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    bonjour,


    en utilisant un SUM couplé à une structure case / when

  3. #3
    Membre éprouvé Avatar de Razorflak
    Homme Profil pro
    Développeur Flex/AS3
    Inscrit en
    Juin 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 97
    Par défaut
    Bonjour,
    si tu es sur Oracle, tu peux utiliser decode dans tes requêtes. Un équivalant existe sur SQL serveur (Case) mais je le l'ai jamais utilisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select ID_ARBITRE,decode(POSITION,'POUR','POUR',null),
    decode(POSITION,'CONTRE','CONTRE',null),
    decode(POSITION,'president','president',null) from ARBITRE
    En gros decode fonction comme un if, decode(a,b,si a=b,sinon).

    En espérant t'avoir aidé.
    Cordialement

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    Merci de vos réponse.

    Je suis dsl j'ai oublié de dire que je travaille sous sql server.

    La seul requête que j'ai réussi à faire est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT AL.ID_ARBITRE, POUR.nb as POUR, CONTRE.nb as CONTRE, PRESIDENT.nb as PRESIDENT
    FROM ARBITRE_LITIGE AL
    JOIN
    (SELECT ID_ARBITRE as ID, COUNT(*) as nb FROM ARBITRE_LITIGE WHERE POSITION = 'POUR'
    GROUP BY ID_ARBITRE) POUR
    ON AL.ID_ARBITRE = POUR.ID
    JOIN
    (SELECT ID_ARBITRE as ID, COUNT(*) as nb FROM ARBITRE_LITIGE WHERE POSITION = 'CONTRE'
    GROUP BY ID_ARBITRE) CONTRE
    ON AL.ID_ARBITRE = CONTRE.ID
    JOIN
    (SELECT ID_ARBITRE as ID, COUNT(*) as nb FROM ARBITRE_LITIGE WHERE POSITION = 'PRESIDENT'
    GROUP BY ID_ARBITRE) PRESIDENT
    ON AL.ID_ARBITRE = PRESIDENT.ID
    Je pense que la meilleur solution serai d'utiliser un case coupler a un sum comme dit punkoff mais je ne vois pas comment.

    Merci

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select col_groupement, sum(case when ma_cond = 1 then 1 else 0 end) , ...
    from ma_table
    where ...
    group by col_groupement

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 161
    Par défaut
    Ok merci je voyez pas ça comme cela.

    Et peux tu me confirmer que ta requêtes sera plus rapide que la mienne.

    Cordialement,

    Et encore merci

  7. #7
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonsoir,

    Le mieux c'est de tester par vous même !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



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

Discussions similaires

  1. [Exercice] Aide sur requête
    Par Dobyan08 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 09/02/2006, 15h47
  2. Aide sur requêtes
    Par Virgile59 dans le forum Access
    Réponses: 6
    Dernier message: 08/02/2006, 16h05
  3. aide sur requête sql
    Par Vodkha dans le forum Langage SQL
    Réponses: 9
    Dernier message: 30/08/2005, 17h53
  4. Aide sur Requête SQL
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/05/2005, 12h33
  5. Besoin d'aide sur requête croisée
    Par keawee dans le forum Access
    Réponses: 7
    Dernier message: 18/11/2004, 09h46

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