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 :

Une requete un peu particulière ...


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Une requete un peu particulière ...
    Bonjour à tous.

    Je dois pondre une requête sur une base Oracle qui vous l'aurez compris me pose problème .

    Je pars de trois tables :
    * une table "utilisateurs" comportant les colonnes "id_utilisateur" et "nom"
    * une table "communaute" composée de "id_communaute" et "libelle"
    * une table "communaute_utilisateur" avec "id_utilisateur" et "id_communaute"

    Vous l'aurez donc compris la troisième table fait le lien entre les deux premières.

    L'exigence que je dois essayer de satisfaire est la suivante : obtenir une ligne (et une seule bien sur) par utilisateur, composée du nom de l'utilisateur et d'une chaine de caractère intégrant l'ensemble des libelles des communautés séparés par des espace ou une virgule (par exemple...).

    Etant plutôt novice, j'ai vraiment du mal à sortir un tel résultat !

    Je connais la fonction concat (ou ||) mais je sais l'utiliser pour concaténer différents champs d'une même ligne (correspondant donc à plusieurs colonnes) mais cela ne me sert pas beaucoup ici puisque les chaines à concaténer sont sur plusieurs lignes ...



    Ma question de débutant est donc :
    1) Est-ce possible ?
    2) Comment faire (une solution ou une bonne piste...) ?

    Merci d'avance à ceux qui pourront m'aider.
    Et merci à ceux qui m'auront lu jusqu'au bout .

  2. #2
    Membre habitué Avatar de souellet
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2003
    Messages : 155
    Points : 171
    Points
    171
    Par défaut
    Salut,

    J'ai passé au travers de ton message

    Ma première question est pourquoi la troisième table pour faire le lien entre les 2 autres tables?
    T'as la clé id_utilisateur existe dans la table 1 et 2 pour faire le lien

    Pour la suite, ta question revient quand même assez souvent sur le forum.
    Je t'invite à aller voir le lien ci-dessous l'article rédigé par SQLPRO notre gourou à tous
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9

    Bonne chance!

  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
    Là : http://www.developpez.net/forums/vie...34720&start=29, il y a une solution spécifique 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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    pour ta réponse.

    Comme tu l'imagines, ces tables ne sont pas de mon fait et je n'ai donc pas la main dessus... Je te concèdes (puisque c'est aussi mon avis) que ces tables n'ont pas toujours été créées dans un soucis d'optimisation de la base et des relations mais plutôt selon des soucis parfois pas très loin du "cosmétique" .
    La faute à qui, je n'entrerai pas dans ce débat mais je suis d'accord .

    Pour en revenir à mon problème, j'avais bien vu l'article que tu me proposes dans ta réponse mais je ne vois pas comment l'adapter à mon cas...

    Mon problème est que CONCAT() prend un certain nombre d'argument (chaines à concaténer forcément). Un élément de la réponse serait donc du style si je te suis :

    (Si j'avais une table carte_d_identite remplie de la façon suivante)
    nom prenoms
    bigard jean
    bigard marie
    bigard paul
    (C'est une personne répondant au nom de Jean Marie Paul BIGARD)


    SELECT nom, CONCAT(prenoms)
    FROM carte_d_identite


    Impossible ! Cela marche avec un SUM() mais avec CONCAT() je ne penses pas y arriver de cette façon.
    C'est probablement un élément de la solution mais je ne suis pas encore en pleine lumière ...

    Si tu as la solution ou si je fais fausse route, insistes ! Ca va peut-être finir par rentrer dans ma petite tête ...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Médiat pour ta reponse.

    Cela correspond tout à fait.

    Je retiens l'appellation "sélection multivaluée" pour la prochaine fois

  6. #6
    Membre habitué Avatar de souellet
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2003
    Messages : 155
    Points : 171
    Points
    171
    Par défaut
    C'est vrai que c'est bien Médiat comme solution
    et appellation multivaluée! 8)

  7. #7
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    Bonjour
    alors moi j'ai le même soucis mais en fait ce que je veux concaténer
    c'est les trois premières lettres de ma colonne 1 avec les 3premières lettres de ma colonne 2
    je sais que c'est un "%..." quelque chose mais je connais pas la syntaxe
    Merci!

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/07/2011, 12h48
  2. Besoin d'aide sur une requete externe un peu compliqué
    Par LiTiL_DiViL dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/12/2009, 08h46
  3. Réduire une figure un peu particulière (?)
    Par GDMINFO dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 17/06/2009, 13h45
  4. Difficulté pour réaliser une requete peu complexe :/
    Par DanaX dans le forum Langage SQL
    Réponses: 9
    Dernier message: 16/05/2007, 13h55
  5. Une mise page un peu particulière
    Par krapoulos2006 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/12/2006, 15h45

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