Bonjour,

J'ai actuellement une requête qui me sort les éléments de cette manière :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
id    date    category    subcategory    value
001    date1    cat1        sub1        X
002    date1    cat1        sub2        X
003    date1    cat1        sub3        X
004    date1    cat2        sub1        X
005    date1    cat3        sub1        X
006    date1    cat3        sub2        X
J'aimerai avoir ce résultat :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
date    cat1_sub1    cat1_sub2    cat1_sub3    cat2_sub1    cat3_sub1    cat3_sub2
date1        X           X            X            X            X            X
Voici un exemple de ma requête :

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
 
SELECT 
    DATE_FORMAT(FROM_UNIXTIME(data.timestamp), '%d %m %Y %h:%i:%s') as timestamp, 
    data_sub_category.designation as sub, 
    data_key.designation as dkey, 
    data_row.value as value
FROM data, data_row, data_sub_category, data_key, data_category
WHERE data.id = data_row.id_data
  AND data_category.id = data_row.id_data_category
  AND data_sub_category.id = data_row.id_data_sub_category
  AND data_key.id = data_row.id_data_key
  AND data_row.id_data_sub_category IN (1,2,3,22,1,2,3,22) 
  AND data_row.id_data_key IN (3,4,5,6,9,10,11,12,15,16,17,18,92,93,94,95,96,97,98,99,100,101,3,4,5,6,9,10,11,12,15,16,17,18,92,93,94,95,96,97,98,99,100,101) 
  AND data.timestamp BETWEEN 1536271200 AND 1536357540
ORDER BY data.timestamp
On m'a recommandé ce lien sur Stackoverflow, cependant le problème avec ma requête, c'est que je ne connais pas d'avance le nom de colonnes.

Je ne vois pas comment adapter ma requête pour mettre en place le pivot.

En vous remerciant pour votre aide.
Valentin