Concatener une colonne en un seul champs

Résolu
yaya2669 Messages postés 31 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 17 mai 2011 - 22 juin 2006 à 09:19
azibdrai Messages postés 12 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 8 mars 2010 - 12 janv. 2010 à 11:20
Bonjour,

Je sais pas exactement comment expliquer ce que je veux faire, donc le mieux c'est un exemple

Select Magasin from TMAG
Cela me renvoi :

Magasin
MAG1
MAG2
MAG3
MAG4

Moi je souhaiterais que cela renvoi :
MAG1, MAG2, MAG3, MAG4

Merci pour votre aide

9 réponses

cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
7 août 2006 à 22:03
On peut le faire en SQL :

DECLARE

@machaine
varchar(8000
)SELECT

@machaine
= @machaine
+ monchamp
=
','
FROM matable
Ca limite à 8000 caractère sur SQL Server 2000 et avant... Sur 2005 on peut mettre un varchar(max)

Il y a une autre méthode aussi sur 2005... faudrait que je remette la main dessus.

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
3
domsig Messages postés 125 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 11 mai 2010
22 juin 2006 à 09:46
salut
il faut faire une boucle à mon avis
set rst=OpenRecordSet("select magasin from TMAG)
if rst.recordcount>0 then
liste=""
rst.movefirst
do
liste=liste & rst.field(nom).value & ","
rst.movenext
loop until rst.eof
end if
liste=left$(liste,len(liste)-1) (pour enlever la dernière virgule)

bon courage
0
yaya2669 Messages postés 31 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 17 mai 2011
22 juin 2006 à 10:13
Merci pour ta réponse.
Mais je veux faire ca en requete directement dans l anlyseur de requete donc pas en VB seulement en sql .

Merci


 
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 4
22 juin 2006 à 10:52
Lut,
Y'a bien CONCAT mais pour l'utilisation dans ton cas .......
Vas voir ici pour plus d'info

Cordialement, Jean-Paul  
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yaya2669 Messages postés 31 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 17 mai 2011
22 juin 2006 à 14:02
Merci encore... Mais cela ne correspond pas encore a ce que je veux faire
0
cs_tataye Messages postés 21 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 juin 2009
7 févr. 2008 à 15:07
Bonjour,

Je rencontre à peu près le même souci :

J'ai une table avec deux champs
Ex :

Champ1     Champ2
A                1
A                2
A                3
B                4
B                5

Et j'aimerai récupérer par requête le résultat suivant :
A               1,2,3
B               4,5

C'est à dire avec un regroupement par rapport au premier champ.
J'ai donc tenté la technique de skweeky sur SQL Server Express 2005 qui m'a renvoyé : Une instruction SELECT qui affecte une valeur à une variable ne doit pas être combinée avec des opérations d'extraction de données.

Y a-t-il une manip particulère à faire ?
Peut-on reproduire ce résultat sur Access ?

Merci d'avance !
0
leodicap31 Messages postés 1 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 7 avril 2008
7 avril 2008 à 14:42
Sous ACCESS: tableau croisée dynamique ...
0
dymsbess Messages postés 56 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 4 janvier 2010 1
18 août 2009 à 21:45
0
azibdrai Messages postés 12 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 8 mars 2010
12 janv. 2010 à 11:20
bon jour tout le monde ;
Je rencontre à peu près le même souci :

J'ai une deux table avec un champs qui est clé primaire dans le 1 table et clé étrangère dans le 2
voila exemple equivalant

Ex :
table1 / tables 2
Champ1 Champ2 / Champ1 CHAMP 2 CHAMP 3 CHAMP 4
A 1 / A
A 2 / B
A 3 / C
B 4 / D
B 5 / E

Et j'aimerai récupérer par requête le résultat suivant :
A 1,2,3
B 4,5
0
Rejoignez-nous