Modifier la structure des colonnes d'une table

Résolu
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 4 oct. 2008 à 11:16
sassmine82 Messages postés 4 Date d'inscription mardi 1 juin 2010 Statut Membre Dernière intervention 2 juin 2010 - 2 juin 2010 à 12:30
Bonjour,

j'utilise access.

on vient de me donner une table dont les colonnes sont les suivantes :
1) NomEleve
2) Matiere
3) Note

pour integrer cette table a une bdd existante, il faudrait que je la structure de la facon suivante :
1) NomEleve
2) NoteMaths
3) NoteFrancais
4) NoteHistGeo
...

pour resoudre ce pbl, j'ai pense realiser autant de rqtes "SELECT NomELEVE, Note as NoteMatiere1 FROM MaTable WHERE Matiere = 'matiere1';" qu'il y a de matieres puis utiliser le champs NomEleve pour faire une jointure sur l'ensemble de ces rqtes.

est-ce la bonne methode ? y aurait t'il quelque chose de plus immediat ou de plus simple ?

merci a vous,

alonsyl

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 oct. 2008 à 20:53
SGDB = systeme de gestion de base de données

Pour access les cte n'existe pas, il y a les PIVOT combinés avec TRANSFORM
si tu trouves la solution n'hesite pas à mettre ta requête dans le post pour les autres.

Bon SQL
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 oct. 2008 à 20:40
Salut,

Une requete PIVOT ou CTE peut faire sans doute la transposition
Sur quel SGBD travailles-tu, c'est plus pratique pour répondre.

Bon sql
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
4 oct. 2008 à 20:48
merci pour ta reponse.

qu'entends-tu part "quel sgbd" ? comme je l'ai indique en tout debut de mon post, j'utilise access (et rien d'autre).

quoiqu'il en soit, je vais regarder ce que sont PIVOT et CTE et je te tiens au courrant !

encore merci a toi,

alonsyl
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
4 oct. 2008 à 21:21
ca y est, j'ai la solution.

voici ma table de depart :
<meta http-equiv= "Content-Type" content="text/html;charset=UTF-8" /><title>MaTable</title><caption> MaTable </caption>----
NomEleve |Matiere |Note |----
Eugénie, Anglais, 15, ----
Eugénie, Maths, 9, ----
Eugénie, Philo, 12, ----
Fabien, Anglais, 14, ----
Fabien, Maths, 7, ----
Fabien, Philo, 10, ----
Raymond, Anglais, 20, ----
Raymond, Maths, 16, ----
Raymond, Philo, 2, ----
René, Anglais, 11, ----
René, Maths, 13, ----
René, Philo, 7, ----
Simone, Anglais, 14, ----
Simone, Maths, 10, ----
Simone, Philo, 12, <tfoot></tfoot>

voici ma rqte :
TRANSFORM SUM(Note) AS total
SELECT NomEleve
FROM MaTable
GROUP BY NomEleve
PIVOT Matiere;

et voici le resultat retourne :
<meta http-equiv ="Content-Type" content="text/html;charset=UTF-8" /><title>Requête1</title><caption>Requête1</caption>----
NomEleve |Anglais |Maths |Philo |----
Eugénie, 15, 9, 12, ----
Fabien, 14, 7, 10, ----
Raymond, 20, 16, 2, ----
René, 11, 13, 7, ----
Simone, 14, 10, 12, <tfoot></tfoot>

merci de ton aide [../auteur/NHERVAGAULT/84425.aspx nhervagault] !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sassmine82 Messages postés 4 Date d'inscription mardi 1 juin 2010 Statut Membre Dernière intervention 2 juin 2010
2 juin 2010 à 12:30
bonjour,
est ce que quelqu'un aurait une idée sur comment faire ce pivot en oracle 9.
je trouve pas.

ou au moins m'orienter sur les commandes sql

merci
0
Rejoignez-nous