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 :

count sur des valeurs de champs


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut count sur des valeurs de champs
    Bonjour,
    J'ai trois (deux surtout) tables utiles pour ma requete, voici le schéma:
    tracteur={ID_tract,nom,prenom,...}
    Lien_tracteur_mission={#ID_tract,#ID_mission,etat}
    Mission={ID_mission,....}

    Pour résumé un tracteur (quelqu'un qui distribue des tracts ) peut accepter ou refuser une mission, et pour chaque tracteur je voudrais récupérer le nombre de fois ou il a refusé une mission et le nombre de fois ou il a accepté une mission et bien sur, sinon se serai trop simple tout sur une meme ligne... Je ve que ce soit sur une meme ligne pour pouvoir faire des tris dessus...
    Bon pour avoie le nombre de fois ou il a accepté je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select tracteur.ID_tract,nom,prenom,count(*) 
    from tracteur,Lien_tracteur_mission
    where etat='accepté'
    group by ID_tract
    Pour ce qui est de sélectionné en plus le nombre de fois ou il a refusé, j'en ai aucune idée....
    PS: - Pas la peine de me mettre une requete avec un union, je veux tout sur la meme ligne...
    - vous remarquerez que mysql autorise à selectionné des champs non compris dans le group by (le nom et le prenom)
    -mysql autorise aussi lees group by multiples du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select tracteur.ID_tract,nom,prenom,count(*) 
    from tracteur,Lien_tracteur_mission
    group by ID_tract,etat
    Cela fait le meme effet qu'un union
    thibaultdelor.com
    SCJP & SCWCD

  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 772
    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 772
    Points : 52 735
    Points
    52 735
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT T.ID_tract, T.nom, T.prenom,
           SUM(CASE
                  WHEN ETAT = 'accepté' THEN 1
               END) AS NB_MISSIONS_ACCEPTEES,
           SUM(CASE
                  WHEN ETAT = 'refusé' THEN 1
               END) AS NB_MISSIONS_REFUSEE
    FROM   tracteur T
           LEFT OUTER JOIN Lien_tracteur_mission LTM
                 ON T. ??? = LTML.???
    GROUP BY T.ID_tract, T.nom, T.prenom
    Remplacer ??? par les clefs primaires et étrangères des jointures.

    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
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Comme on ne connait pas le SGBD, en access, je fais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT ID_tract,
    Count(IIf([ETAT] = 'accepté',[ID_tract])) AS [Accepté],
    Count(IIf([ETAT] = 'refusé',[ID_tract])) AS [Refusé]
    From tracteur
    GROUP BY ID_tract

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/12/2009, 23h10
  2. [Math]Problème troncage ou arrondi sur des valeurs
    Par Carrel dans le forum Général Java
    Réponses: 6
    Dernier message: 07/10/2009, 15h11
  3. Réponses: 1
    Dernier message: 24/07/2009, 15h40
  4. Tri par la moyenne des valeurs de champs ?
    Par rozwel dans le forum Requêtes
    Réponses: 8
    Dernier message: 28/01/2005, 18h35
  5. "Order by" sur des valeurs spécifiques
    Par damienTrax dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/11/2004, 09h20

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