comment mettre en colonne des lignes ?

Le
Nicolas
Bonjour,

je m'explique :

j'ai une table qui à un champ id_personne, et un champ num_programme.
J'aimerais faire une requete qui me sort une ligne par personne avec
en colonne les numéro de programme qui lui appartienne : en gros,
passer de :

id_personne -- num_programme
1 -- 102
1 -- 524
1 -- 12
2 -- 142
2 -- 36

à :

id_personne -- num_programme
1 -- 102 -- 524 -- 12
2 -- 142 -- 36

y'a t-il un moyen ?

merci de vos réponses.
Nicolas
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #11858801
Le Fri, 20 Apr 2007 10:29:59 +0200, Nicolas

Bonjour,

je m'explique :

j'ai une table qui à un champ id_personne, et un champ num_programme.
J'aimerais faire une requete qui me sort une ligne par personne avec
en colonne les numéro de programme qui lui appartienne : en gros,
passer de :

id_personne -- num_programme
1 -- 102
1 -- 524
1 -- 12
2 -- 142
2 -- 36

à :

id_personne -- num_programme
1 -- 102 -- 524 -- 12
2 -- 142 -- 36

y'a t-il un moyen ?

merci de vos réponses.
Nicolas





Sous SQL Server il y a un l'opérateur PIVOT...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Nicolas
Le #11858771
oki, merci,

et comment je m'en sert ?
j'ai fait une recherche de PIVOT dans l'aide de Enterprise Manager mais il
ne m'a pas sortis grand chose d'interressant.

juste une truc : Pivot Table Service.


une petite aide ?

merci d'avance.

nicolas
"Gilles TOURREAU"
Le Fri, 20 Apr 2007 10:29:59 +0200, Nicolas

Bonjour,

je m'explique :

j'ai une table qui à un champ id_personne, et un champ num_programme.
J'aimerais faire une requete qui me sort une ligne par personne avec
en colonne les numéro de programme qui lui appartienne : en gros,
passer de :

id_personne -- num_programme
1 -- 102
1 -- 524
1 -- 12
2 -- 142
2 -- 36

à :

id_personne -- num_programme
1 -- 102 -- 524 -- 12
2 -- 142 -- 36

y'a t-il un moyen ?

merci de vos réponses.
Nicolas





Sous SQL Server il y a un l'opérateur PIVOT...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Nicolas
Le #11858751
ouppsss, j'ai oublié de dire, je suis sous SQL Server 2000 !!


"Gilles TOURREAU"
Le Fri, 20 Apr 2007 10:29:59 +0200, Nicolas

Bonjour,

je m'explique :

j'ai une table qui à un champ id_personne, et un champ num_programme.
J'aimerais faire une requete qui me sort une ligne par personne avec
en colonne les numéro de programme qui lui appartienne : en gros,
passer de :

id_personne -- num_programme
1 -- 102
1 -- 524
1 -- 12
2 -- 142
2 -- 36

à :

id_personne -- num_programme
1 -- 102 -- 524 -- 12
2 -- 142 -- 36

y'a t-il un moyen ?

merci de vos réponses.
Nicolas





Sous SQL Server il y a un l'opérateur PIVOT...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Fr
Le #11858711
Bonjour,

Si tu souhaite autant de colonnes que de num_programme, ca va etre difficile
(voir non conseillé... http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9
...). Je te conseil plutôt de le faire coté client.

Si une concaténation des num_programme dans une seule colonne convient alors
reprend le fil du Post de Andre.L' du 11/04/2007
intitulé "Recherche de la commande SQL"

Je donne une solution "de moindre mal" à base d'UDF qui fonctionne sous
SQLserver 2000

MAIS, lit bien les remarques de Fred et de Philippe ...

@+




"Nicolas" news:
Bonjour,

je m'explique :

j'ai une table qui à un champ id_personne, et un champ num_programme.
J'aimerais faire une requete qui me sort une ligne par personne avec
en colonne les numéro de programme qui lui appartienne : en gros,
passer de :

id_personne -- num_programme
1 -- 102
1 -- 524
1 -- 12
2 -- 142
2 -- 36

à :

id_personne -- num_programme
1 -- 102 -- 524 -- 12
2 -- 142 -- 36

y'a t-il un moyen ?

merci de vos réponses.
Nicolas



Fred BROUARD
Le #11858621
Nicolas a écrit :
ouppsss, j'ai oublié de dire, je suis sous SQL Server 2000 !!




PIVOT est un opérateur non relationnel spécifique à SQL Server 2005.

Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/SQL_Server_2K5/N1.php
§ 1.8

Il n'y a aucun intérêt à vouloir faire ceci dans une requête SQL. C'est
le rôle de la couche présentation, par exemple sur le client.

A +


"Gilles TOURREAU"
Le Fri, 20 Apr 2007 10:29:59 +0200, Nicolas

Bonjour,

je m'explique :

j'ai une table qui à un champ id_personne, et un champ num_programme.
J'aimerais faire une requete qui me sort une ligne par personne avec
en colonne les numéro de programme qui lui appartienne : en gros,
passer de :

id_personne -- num_programme
1 -- 102
1 -- 524
1 -- 12
2 -- 142
2 -- 36

à :

id_personne -- num_programme
1 -- 102 -- 524 -- 12
2 -- 142 -- 36

y'a t-il un moyen ?

merci de vos réponses.
Nicolas




Sous SQL Server il y a un l'opérateur PIVOT...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr








--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Publicité
Poster une réponse
Anonyme