Bonsoir,
J'ai un problème lorsque je reçois un résultat d'une requête : je veux transposer le résultat.
Ma requête SQL est :
Le résultat est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT atop.name AS top, aseco.name AS abei, aseco.abeiId AS CI, aseco.location AS pac, axrt.frk AS FRK FROM atop INNER JOIN (aseco INNER JOIN axrt ON (aseco.abeiId = axrt.abeiId) AND (aseco.BCFId = axrt.BCFId) AND (aseco.topId = axrt.topId)) ON atop.topId = aseco.topId WHERE (((axrt.ctp)<>8) AND ((aseco.abeiish)=5)) OR (((axrt.ctp)<>3) AND ((aseco.abeiish)=2) AND ((aseco.hpnmd)=2));
Je veux transposer les résultats reçus, je veux qu'ils soient comme ça :
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 ---------------------------------------------------------------- top | abei | CI | pac | FRK | ---------------------------------------------------------------- A | b | e | 1 | 12 | A | b | e | 1 | 13 | A | b | e | 1 | 14 | A | c | t | 2 | 45 | A | c | t | 2 | 56 | A | c | t | 2 | 23 | A | c | t | 2 | 29 | A | c | t | 2 | 50 | b | c | t | 1 | 11 | b | c | t | 1 | 56 | b | c | t | 1 | 78 | ----------------------------------------------------------------
J’ai essayé ce code, il ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ---------------------------------------------------------------------------------- top | abei | CI | pac | FRK | frk1 | frk2 | frk3 | frk4 |... ---------------------------------------------------------------- ----------------- A | b | e | 1 | 12 | 13 | 14 | | |... A | c | t | 2 | 45 | 56 | 23 | 29 | 50 |... b | c | t | 1 | 11 | 56 | 56 | 78 | |... ----------------------------------------------------------------------------------
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 SELECT atop.name AS top, aseco.name AS abei, aseco.abeiId AS CI, aseco.location AS pac, axrt.frk AS FRK, max(case when row=2 then data end) frk2, max(case when row=3 then data end) frk3, max(case when row=4 then data end) frk4, max(case when row=5 then data end) frk5, max(case when row=6 then data end) frk6, max(case when row=7 then data end) frk7, max(case when row=8 then data end) frk8, max(case when row=9 then data end) frk9, max(case when row=10 then data end) frk10, max(case when row=11 then data end) frk11, max(case when row=12 then data end) frk12 FROM atop INNER JOIN (aseco INNER JOIN axrt ON (aseco.abeiId = axrt.abeiId) AND (aseco.BCFId = axrt.BCFId) AND (aseco.topId = axrt.topId)) ON atop.topId = aseco.topId WHERE (((axrt.ctp)<>8) AND ((aseco.abeiish)=5)) OR (((axrt.ctp)<>3) AND ((aseco.abeiish)=2) AND ((aseco.hpnmd)=2));
NB: les colonnes frk2.... frk12 n'existent dans aucune table.
Merci pour votre aide
Partager