Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment mettre en colonne des lignes ?

5 réponses
Avatar
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

5 réponses

Avatar
Gilles TOURREAU
Le Fri, 20 Apr 2007 10:29:59 +0200, Nicolas
a écrit:

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
Avatar
Nicolas
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" a écrit dans le message de news:

Le Fri, 20 Apr 2007 10:29:59 +0200, Nicolas
a écrit:

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


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


"Gilles TOURREAU" a écrit dans le message de news:

Le Fri, 20 Apr 2007 10:29:59 +0200, Nicolas
a écrit:

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


Avatar
Fr
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" wrote in message
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



Avatar
Fred BROUARD
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" a écrit dans le message de news:

Le Fri, 20 Apr 2007 10:29:59 +0200, Nicolas
a écrit:

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 ***********************