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

Développement SQL Server Discussion :

Group by avec concaténation de caractères [2008R2]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut Group by avec concaténation de caractères
    Bonjour,
    Voici une demande pas très propre car le but est de faire une mise en forme de tableau grâce à MSSQL.
    Je voudrais concaténer les caractères de différents enregistrements lorsqu'il y a un regroupement. Voici un exemple :

    TABLE COL1 COL2 COL3
    26/03/15 USCA151085
    26/03/15 USCA151075
    26/03/15 USCA151081

    Je voudrais obtenir ça :

    DATE COL1 COL2 COL3
    26/03/15 USCA151085 USCA151075 USCA151081

    J'avais bien des pistes avec des STUFF ou des FOR XML PATH, mais je ne m'en sors pas.

    Avez-vous une petite idée s'il vous plaît ?

    Merci
    Geoffroy

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut
    Il n'y a pas de concaténation dans votre demande, mais pour avoir le resultat demandé :

    D'abord avec un Coalesce(Col1, Col2, Col3) et un case bien ficelé pour avoir ça

    TABLE COL VAL
    26/03/15 COL 1 USCA151085
    26/03/15 COL 2 USCA151075
    26/03/15 COL 3 USCA151081


    puis avec un pivot table sur le résultat.

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Ou même directement un GROUP BY + MAX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT 
        LaDate
        ,MAX(COL1) as col1
        ,MAX(col2) as col2
        ,MAX(col3) as col3
    FROM LaTable
    GROUP BY LaDate

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut Un grand merci
    Merci pour ces réponses.
    Effectivement, je ne m'étais jamais imaginé pouvoir faire un max() sur du texte dans un Group By...

    Pourquoi chercher loin ???

    Encore merci

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

Discussions similaires

  1. Concaténation de caractère
    Par djsbens dans le forum Oracle
    Réponses: 12
    Dernier message: 20/02/2006, 15h05
  2. Une requête SQl avec concaténation
    Par Bobybx dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/01/2006, 10h18
  3. Groupe By avec jointure
    Par batoubat dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/12/2005, 14h12
  4. problème d'update avec concaténation
    Par Invité dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/11/2005, 16h55
  5. Requete avec chaine de caractère commence par
    Par jazzes_dean dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/08/2004, 13h07

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