Bonjour,
Question d'un débutant :
Au sein d'une requète portant sur une dizaine de tables, je cherche à "convertir" des lignes en colonnes.
Pour être plus clair, j'ai une table qui me renvoie 1 a 4 lignes pour un client donné et je cherche à avoir ces lignes renvoyées en 1 a 4 colonnes.
Voir ci dessous :
Le seul résultat que j'ai réussi à obtenir ne marche que si j'ai 4 lignes dans la table TRAVAIL_CLI (CLI2 dans l'exemple ci dessus).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Table CLIENT IDCLI NOM CLI1 Azertyuiop CLI2 Qsdfghjklm CLI3 Wxcvbn CLI4 KGHKJGHKJ Table TRAVAIL_CLI IDCLI Travail CLI1 T01 CLI1 T02 CLI2 T01 CLI2 T03 CLI2 T04 CLI2 T05 CLI3 T01 CLI4 T05 Résultat recherché IDCLI NOM Trav1 Trav2 Trav3 Trav4 CLI1 Azertyuiop T01 T02 null null CLI2 Qsdfghjklm T01 T03 T04 T05 CLI3 Wxcvbn T01 null null null CLI4 KGHKJGHKJ T01 T05 null null
Si quelqu'un à une solution, je suis prenneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 SELECT CLIENT.IDCLI, CLIENT.NOM, t1.Travail as Trav1, t2.Travail as Trav2, t3.Travail as Trav3, t4.Travail as Trav4 FROM CLIENT INNER JOIN TRAVAIL_CLI AS t1 INNER JOIN TRAVAIL_CLI AS t2 ON t1.IDCLI = t2.IDCLI AND t1.Travail < t2.Travail INNER JOIN TRAVAIL_CLI AS t3 ON t2.IDCLI = t3.IDCLI AND t2.Travail < t3.Travail INNER JOIN TRAVAIL_CLI AS t4 ON t3.IDCLI = t4.IDCLI AND t3.Travail < t4.Travail order by CLIENT.IDCLI
Merci d'avance
philippe
Version : SQL server 2000 sur Win2003 serveur
Partager