Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2011, 15h28   #1
Candidat au titre de Membre du Club
 
Homme
Consultant junior BI
Inscription : mai 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant junior BI
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 28
Points : 11
Points : 11
Par défaut Concaténation selon un champ

Bonjour bonjour !

Je souhaiterais réaliser une concaténation des valeurs d'une colonne ... selon les valeurs d'un champ.

Un petit exemple pour illustrer :

Id...Nom...Prenom...Statut
1....Lac....Xavier........1
2....Des....Michel........1
3....Lic.....Bertrand.....2
4....Del.....Fredéric.....1
5....Isi......Alphonse....2

J'aimerais obtenir comme résultat :
Statut...ConcacNom
1..........Lac-Des-Del
2..........Lic-Isi

Avec des valeurs à la place des noms ça passerait tout seul, avec un SUM et un GROUP BY, mais pour la concaténation de chaînes de caractères, je ne vois pas vraiment comment le faire !

Merci pour votre temps de lecture / aide.
Lobay
Lobay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h30   #2
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Utilises les fonctions CONCAT ou GROUP_CONCAT
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h35   #3
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
GROUP_CONCAT devrait pouvoir vous aider a réaliser ce que vous voulez faire.

Du genre

Code :
1
2
3
4
5
6
7
SELECT
 Statut,
 Group_concat ( Nom ORDER BY id SEPARATOR '-') AS ConcacNom
FROM
  MaTable
GROUP BY 
  Statut
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)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/08/2011, 15h48   #4
Candidat au titre de Membre du Club
 
Homme
Consultant junior BI
Inscription : mai 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant junior BI
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 28
Points : 11
Points : 11
Merci pour vos deux réponses.

J'avais testé un CONCAT avec une requête de la sorte :
Code :
1
2
3
4
5
6
7
8
 
SELECT
  STATUT AS Statut,
  CONCAT(NOM) AS ConcacNom
FROM
  MaTable
GROUP BY 
  STATUT
Mais ça me retourne le message d'erreur suivant (alors que CONCAT apparaît en bleu) :
'CONCAT' is not a recognized built-in function name.

J'ai essayé avec GROUP_CONCAT, j'ai la même erreur mais il n’apparaît même pas en bleu.

En cherchant un peu sur internet, j'ai vu que c'était parcequ'il fallait que j'indique le schéma ? dbo.CONCAT ne marche pas et je ne vois pas pourquoi il faudrait préciser le schéma d'une fonction de base (je suppose que c'est comme un SUM, qui marche très bien).
Lobay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h55   #5
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Si tu es bien sous MySQL cela devrait fonctionner!

Qu'utilises tu pour executer ta requête?
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 16h02   #6
Candidat au titre de Membre du Club
 
Homme
Consultant junior BI
Inscription : mai 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant junior BI
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 28
Points : 11
Points : 11
Hmmm, j'ai du faire une boulette sur l'endroit où j'ai posté mon message ... !

J'exécute ça sous SQL Serveur Management Studio, pas MySQL ...

Je supprime ici et je reposte dans la bonne partie ou il est possible de migrer mon sujet ?

Désolé ...
Lobay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 16h45   #7
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Un post ressemblant a votre probleme ici

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)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/08/2011, 09h30   #8
Candidat au titre de Membre du Club
 
Homme
Consultant junior BI
Inscription : mai 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant junior BI
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 28
Points : 11
Points : 11
Je n'ai pas compris complètement la méthode mais j'ai pour l'instant réussi à adapter à une table plus simple que celle que j'utilise.

J'espère maintenant réussir à adapter à la table voulue. C'était plus simple avec MySQL

Merci pour les réponses en tout cas !
Lobay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 14h59   #9
Invité de passage
 
Inscription : septembre 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 18
Points : 4
Points : 4
En MsSQL, j utilise ce principe qui fonctionne:

Code :
1
2
3
4
5
6
7
8
 
DECLARE @ListAcheteur VARCHAR(1000)
SET @ListAcheteur = ''
 
SELECT @ListAcheteur = @ListAcheteur + Acheteur+ ';'
	FROM CmdPos
	WHERE Acheteur IS NOT NULL
		--AND ...
(Utilisé pour un petit job qui envoit un Email à certains acheteurs... j'entends déjà certains s'étrangler avec ce genre de code )
Krison est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h43.


 
 
 
 
Partenaires

Hébergement Web