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 :

[Débutant] afficher les comptables qui ont travaillés sur le même projet


Sujet :

Langage SQL

  1. #1
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut [Débutant] afficher les comptables qui ont travaillés sur le même projet
    Bonjour,
    J'ai dans une table ceci :

    Comptable Projets
    C1 <--> P1
    C2 <--> P1
    C3 <--> P3
    C4 <--> P1
    C5 <--> P3

    Je voulais afficher les comptables qui ont travaillés sur le même projet.

    Pour ce faite je voulais utiliser une requete puis sous requete,
    mais je ne m'en sors pas, avait vous une idée.

    MErci d'avance.

  2. #2
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT comptables FROM ta_table WHERE projet = 'ton_projet'
    ?

    Sinon y a des cours pas mal sur ce site, cherches un peu, on est pas là pour faire ton travail à ta place.
    "Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley
    "Less is more" Ludwig Mies Van Der Rohe

    Risk & Security Mgmt

  3. #3
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Citation Envoyé par Anthony.Desvernois Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT comptables FROM ta_table WHERE projet = 'ton_projet'
    ?

    Sinon y a des cours pas mal sur ce site, cherches un peu, on est pas là pour faire ton travail à ta place.
    Non en faite je ne veux pas trouver les comptables qui ont travaillés sur un projet donnée,
    mais plutôt qui ont travaillés sur le même projet que ça soit P1 & P2 & P3 ou autres, sans pour autant figer la valeur du projet.

    Merci pour vôtre aide.

    (PS : dés demain matin je vous réponderai par MP car un post normale ne passe pas de là ou je travails).

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    avec cet exemple que tu nous a donné, quel serait le résultat attendu?

  5. #5
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Faites un regroupement sur le projet...

    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  6. #6
    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 : 44
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    En gros ce devrait donner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Comptable
        , Projets
    FROM TaTable
     
    GROUP BY Projets
    ;
    « 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



  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Ca m'étonnerait qu'elle fonctionne ta requête Chtulus !
    Le GROUP BY ne va donner qu'une ligne par projet et va retourner le premier Comptable qu'elle va trouver.

    La solution serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Projet, Comptable
    FROM TaTable
    ORDER BY Projet
    C'est ensuite au logiciel qui accède à la BDD de faire un zouli tableau pour présenter ça comme tu le veux.

    Si tu es sous MySQL (>= 4.1), tu peux utiliser la fonction GROUP_CONCAT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Projet, GROUP_CONCAT(Comptable)
    FROM TaTable
    GROUP BY Projet
    Tu auras alors une ligne par projet avec la liste des comptables séparés par une virgule.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Enfin de compte j'ai décidé de faire ma requête comme ceci,
    alors merci de me dire ce que vous en pensez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select Comptable From Table
    Where Projet Not IN (Select Projet From Table       
                           Where count (Comptable) = 1 Or  count (Comptable) = 0)
    Comme ça la sous-requête va ecartter les comptables qui ont un seule projet, et alors on aura les comptables qui travaillent sur le même projet.

    aussi j'ai fait celà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select Comptable  From Table
    Where Projet IN (Select Projet From Table     
                                 Where count (Comptable) > 1)
    ça vous semble bon !!!

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    2 remarques :
    1) évite d'appeler une table 'TABLE' car c'est un mot réservé de SQL
    2) Ta requête ne retourne que les comptables mais pas les projets sur lesquels ils travaillent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Projet, Comptable FROM taTable
    WHERE Projet IN (SELECT Projet FROM taTable    
                                 WHERE count (Comptable) > 1)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    cela m'étonnerait que cette requête fonctionne

    pour la sous requête, cela doit plus être quelque chose dans ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Projet FROM taTable    
    GROUP by Comptable 
    HAVING count(Comptable) > 1

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Exact Cybher, j'avais zappé ce détail !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  12. #12
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Citation Envoyé par Cybher Voir le message
    salut,

    cela m'étonnerait que cette requête fonctionne

    pour la sous requête, cela doit plus être quelque chose dans ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Projet FROM taTable    
    GROUP by Comptable 
    HAVING count(Comptable) > 1
    Oui j'avais pensé à ça aussi,
    mais puisque c'était en abrentissage de SQL,
    je me suis dit pourquoi pas faire plus long,

    mais je ne comprends pas pourquoi la requête ne marcherai pas ?..?
    Merci.

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Parce qu'il faut grouper par projet pour pouvoir compter le nombre de comptable et donc ne garder que les projets qui ont plus d'un comptable.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/10/2014, 15h18
  2. [Free Pascal] Impossible de scroller l'écran pour afficher les lignes qui ont remonté
    Par Loupsio dans le forum Free Pascal
    Réponses: 10
    Dernier message: 27/03/2013, 18h30
  3. [MySQL] Afficher les services qui n'ont pas de relation avec une famille
    Par yosraisi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/06/2008, 11h11
  4. afficher tout les divs qui ont leurs id commence par la chaine "select"
    Par karimphp dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/01/2008, 15h27
  5. Réponses: 8
    Dernier message: 08/12/2006, 13h22

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