Renverser une table

cs_nicole66 Messages postés 4 Date d'inscription mardi 27 janvier 2004 Statut Membre Dernière intervention 24 juillet 2007 - 27 mai 2005 à 12:04
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 27 mai 2005 à 15:26
Bonjour,
J'ai une table SQL qui contient des cours et des einseignants:

Cours Eneseignant
------ ------------
C1 x
C1 y
C2 z
C2 a
C2 b

Le nombre maximum d'enseignant par cours est 5

J'aimerais pouvoir "retourner" les résultats de cette manière:

Cours Enseignant1 Enseignant2 Enseignant3 Enseignant4 Enseignant5
------ ------------ ------------ ------------ ------------ -----------
C1 x y
C2 z a b c

Est-ce possible?

Merci de votre aide,

Nicole

1 réponse

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
27 mai 2005 à 15:26
Salut,



Le probleme est tres complexe



Si tes données sont dans un intervalle finit

utilise

La technique de m$

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_qd_14_04j7.asp



dans le cas ou ton intervalle est infini il faut utiliser les shemas.

Dans une procédure stockées avec des curseurs.

Regardes la sources que j'ai posté en debut de semaine



+ La technique a microsoft pour le peuplement.



Une autre technique est de faire un programme qui inverse.



Ce probleme, si a des solutions mais qui sont couteuse en ressources calculs.



Il y a les sous requetes que tu peut utiliser aussi.





Select

(select * from matable [ou mafonction(parametre)]) as Enseignant1,

...

FROM ...



Les sous requetes et fonctions de la clause select ne doivent renvoyée qu'un seulement enregistrement.

Sinon BOOM.



Pour cela utilise les fonctions d'aggregation

MAX(STRING) , COUNT(ENTIER), SUM(ENTIER)

Et une clause grouping et having (utilisant les parametres de la fonction.





Peut être que ces pistes peuvent t'aider.



Voila
0
Rejoignez-nous