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

Requêtes PostgreSQL Discussion :

Concaténation plus poussée


Sujet :

Requêtes PostgreSQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    autre
    Inscrit en
    Mars 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Mars 2017
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Concaténation plus poussée
    bonjour,

    pour concaténer plusieurs lignes j'utilise actuellement le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    create table MATABLE as select commune,
    array_to_string(array_agg(distinct nom_personnes), ';'),
    array_to_string(array_agg(distinct fonction), ';')
    from table
    group by commune order by commune
    ceci me donne une ligne avec des colonnes pour la commune, pour les personnes, leurs fonctions
    ex
    Commune Personnes Fonction
    Toulouse Pierre; Ahmed Ingénieur; Responsable


    la question que je me posais est : est ce possible de faire une concaténation mais avec un résultat
    un peu plus complexe:
    une colonne pour les communes, une pour les personnes mais à chaque personnes une sous cellule

    ex :
    Commune Personnes Fonction
    Toulouse Pierre Ingénieur
    Ahmed Responsable

    Peut on faire cela?

    merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    autre
    Inscrit en
    Mars 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Mars 2017
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    j'ai trouvé comment mettre un retour à la ligne dans la concatenation '\n' à la place du point virgule mais je n'arrive pas à l'exporter en csv et surtout les termes ne correspondent pas.... ex Ahmed devient ingé et Pierre responsable

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Là, ce que vous cherchez à faire, c'est de la mise en forme des données... Ce n'est pas le rôle du SGBD, ni du SQL, de faire cela.
    C'est le travail du langage de mise en forme des données lors de l'affichage des résultats retournés par les requêtes d'interrogation (PHP, java...).
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Futur Membre du Club
    Homme Profil pro
    autre
    Inscrit en
    Mars 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Mars 2017
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    merci pour votre réponse

  5. #5
    Futur Membre du Club
    Homme Profil pro
    autre
    Inscrit en
    Mars 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Mars 2017
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    bonjour, du coup si j'ai bien compris je ne peux pas exporter une base avec des "sous lignes " en un csv qui me restituerait ce que je veux? le java et le php ne peuvent pas m'aider sauf si c'est pour une retitutution web or moi il me faut un 'produit Csv'

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 555
    Points
    38 555
    Billets dans le blog
    9
    Par défaut
    Encore une fois, le langage SQL n'est pas fait pour mettre en forme les données, c'est à l'application de faire cette mise en forme.

    Par contre, si vous utilisez du format CSV, vous pouvez passer par une étape excel intermédiaire (ou un tableur équivalent) qui exploitera les données brutes issues de vos requêtes et, via des fonctions ou du code VBA, réalisera la mise en forme souhaitée avant de formater en CSV.

Discussions similaires

  1. Une SSII me pousse à signer un CDI au plus vite ?!
    Par sevlev59 dans le forum SSII
    Réponses: 19
    Dernier message: 19/12/2012, 10h42
  2. [AC-2003] Aide plus précise (que FAQ et tutoriels) sur la concaténation
    Par nano83 dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 13/10/2010, 11h16
  3. Concaténation de 2 fichiers ou plus
    Par l_autodidacte dans le forum Windows XP
    Réponses: 3
    Dernier message: 25/02/2010, 12h54
  4. Réponses: 2
    Dernier message: 13/02/2008, 13h56
  5. Réponses: 3
    Dernier message: 09/08/2007, 16h53

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