Modifier la structure des colonnes d'une table

Résolu
Signaler
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
Messages postés
4
Date d'inscription
mardi 1 juin 2010
Statut
Membre
Dernière intervention
2 juin 2010
-
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
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
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
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
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
12
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
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
12
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] !
Messages postés
4
Date d'inscription
mardi 1 juin 2010
Statut
Membre
Dernière intervention
2 juin 2010

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