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 :

Question sur sql


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut Question sur sql
    Bonjour,

    Jai une table comme si dessous :

    Nom Prenom Fonction
    Dupond Louis Agent
    Martin Marcel Technicien
    Dupond Raoul Agent
    Dupond Louis Technicien

    Quand je fais ma requete en cherchant Dupond Louis, je me retrouve avant extraction sachant que en faite c'est la meme personne mais c'est juste ca fonction qui change.
    Donc j'aimerais savoir si il est possible de faire une requete pour chercher toute les fonction de Dupond Louis sachant que j'affiche son nom et prenom puis c'est fonction.

    Merci de votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Salut,
    Quel sgbd utilises tu? Que veux tu afficher exactement? Essaie de faire un effort sur la description de ton problème, ça nous permettra de mieux t'aider.

  3. #3
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Je suis sur mysql est donc pour etre plus clair donc j'ai ma base que se présent comme plus haute et a l'affichage je voudrais:

    Dupond
    Louis
    (Agent,Technicien)

    Martin
    Marcel
    (Technicien)

    Merci de votre aide

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom, prenom, group_concat(fonction)
    from TaTable
    group by nom, prenom
    Un lien sur le group_concat, propre à mysql : http://dev.mysql.com/doc/refman/4.1/...n_group-concat

  5. #5
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Jai saisi cett requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom, prenom, group_concat(fonction)
    FROM name WHERE nom = 'Dupond' AND prenom = 'Louis'
    GROUP BY nom, prenom
    Aprés exection il me renvoie ca : [BLOB - 5 o]

    Je comprend pas, merci pour votre aide.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Il faudrait fournir la description de votre table, notamment le type des colonnes.

  7. #7
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Merci pour votre aide maintenant ca marche.

  8. #8
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    J'avais oublié que dans ma bdd il me manquait un champ service comme celui la :

    Nom Prenom Fonction Service
    Dupond Louis Agent
    Martin Marcel Technicien B
    Dupond Raoul Agent C
    Dupond Louis Technicien E

    Donc quand j'utilise group_concat() ma requete me retourne les valeurs sous cette form Agent,technicien donc jai rajouter un group_concat() dans ma requete comme ci-dessous

    SELECT nom, prenom, group_concat(fonction), group_concat(service)
    FROM name WHERE nom = 'Dupond' AND prenom = 'Louis'
    GROUP BY nom, prenom
    Pour afficher le resultat j'utilise explode en php sauf que a cause de mon nouveau champ service l'affichage est érroné car si service et fonction ne sont pas égal les valeurs ne correspond plus a la personne.

    Ce que je voudrais :

    Dupond
    Louis
    (Agent,Technicien[E])

    Martin
    Marcel
    (Technicien[B])

    Ce que ca produit

    Dupond
    Louis
    (Agent[E],Technicien)

    Martin
    Marcel
    (Technicien[B])

    Si vous avez une idée merci a vous.

  9. #9
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Je n'ai pas la syntaxe exacte, mais utilisez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    group_concat(concat(fonction, service))

  10. #10
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    group_concat(fonction || CASE WHEN service IS NULL THEN '' ELSE '[' || service || ']' END)
    EDIT :
    Waldar a raison, sous MySQL, c'est concat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    group_concat(concat(fonction, CASE WHEN service IS NULL THEN '' ELSE CONCAT('[',service, ']') END))

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  11. #11
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Bonjour et merci pour votre aide, j'ai testé mais il me sql me renvoie cette erreur que je comprend pas.

    #1111 - Invalid use of group function
    Merci pour votre aide

  12. #12
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Probléme résolu merci beaucoup pour votre aide.

  13. #13
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Pouvez-vous faire une copier coller de la requête qui retourne cette erreur, vous avez peut-être fait une faute de syntaxe.

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

Discussions similaires

  1. Diverses questions sur SQL Server
    Par kedare dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/07/2010, 18h33
  2. Question sur Sql Developer
    Par 4rocky4 dans le forum Import/Export
    Réponses: 24
    Dernier message: 24/04/2009, 08h38
  3. Question sur SQL Loader
    Par Mercusyo dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 04/03/2008, 17h24
  4. Question sur sql et ASP
    Par claralavraie dans le forum ASP
    Réponses: 5
    Dernier message: 23/12/2005, 11h41
  5. Quelques questions sur SQL Server 2000
    Par yinyang dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/12/2005, 19h39

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