En essayant de faire pivoter une table sql je suis tombé sur ce poste Here. En utilisant cette méthode, j'ai créé une requête. Cependant, j'ai maintenant réalisé qu'il agrège bien sûr les résultats avec la fonction MAX. Cependant j'ai besoin que le Colum pivote mais que toutes les occurrences soient montrées. Code tiré du message ci-dessus.pivot SQL sans agrégat
SELECT dy,
MAX(CASE WHEN period = 1 THEN subj ELSE NULL END) AS P1,
MAX(CASE WHEN period = 2 THEN subj ELSE NULL END) AS P2,
FROM Classes
GROUP BY dy
Donc en substance je souhaite l'utiliser mais sans la fonction max? Des idées?
Modifier les données Exemple
Day Period Subject
Mon 1 Ch
Mon 2 Ph
Tue 1 Ph
Tue 2 Ele
Mon 1 Ch
Mon 2 Ph
Tue 1 Ph
Tue 2 Ele
exemple sortie
Day P1 P2
Mon Ch Ph
Mon Ch Ph
Tue Ph Ele
Tue Ph Ele
donc basiquement si les données sont entrées deux fois il apparaît deux fois ...
Modifier sql réelle ..
SELECT other
MAX(CASE WHEN period = 1 THEN table2.subj ELSE NULL END) AS P1,
MAX(CASE WHEN period = 2 THEN table2.subj ELSE NULL END) AS P2
FROM table1
left join table2 on table2.ID = subject
GROUP BY other
Exemple données
Table1
Dy Period Subject other
Mon 1 1 1
Mon 2 2 1
Tue 1 3 2
Tue 2 4 2
Mon 1 5 3
Mon 2 6 3
Tue 1 7 4
Tue 2 8 4
table_2
ID Subj
1 ch
2 ph
3 ph
4 ele
5 ch
6 ph
7 ph
8 Ele
exemple sortie
Day P1 P2 other
Mon Ch Ph 1
Mon Ch Ph 3
Tue Ph Ele 2
Tue Ph Ele 4
Fournissez des exemples de données et les résultats attendus afin que nous puissions voir ce que vous essayez d'accomplir. –