PIVOT SQL SERVER

sogesalex Messages postés 5 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 14 juin 2012 - 14 juin 2012 à 15:39
pmcoste Messages postés 72 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 25 juillet 2013 - 15 juin 2012 à 10:11
Bonjour,
J'ai un gros soucis je veux faire une requête de type pivot ou qui y ressemble fortement mais je n'ai aucune notion d'agrégation dedans comme tous les exemples de requêtes pivot que j'ai pu trouver du coup je ne réussi pas à faire ma requête et je suis certains que c'est possible.

VOic un exmeple de ma table de départ
IDPRODUIT, DONNEE,VALEUR
je peux y trouver :
1, 'versionLOgiciel', '3.8.1'
1, 'versionBase', '2005'
2, 'versionLOgiciel', '3.8.1'
2, 'versionBase', '2008'
3, 'versionLOgiciel', '3.8.0'
3, 'versionBase','2000'

Je voudrais afficher les valeurs comme ceci :
IDPRODUIT, versionLOgiciel, versionBase
1, '3.8.1',2005
2, '3.8.1','2008'
3, '3.8.0', '2000'

Vous voyez ? je n'ai pas de sum de version logiciel à faire ou de version base simplement je veux inverser une partie des résultats pour avoir une vue plus synthétique et comme c'est une des valeurs qui se transforme en Colonne je pense qu'il faut bien utiliser un pivot mais comment ?

1 réponse

pmcoste Messages postés 72 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 25 juillet 2013 1
15 juin 2012 à 10:11
Code non testé :

select IDPRODUIT
      , (select VALEUR from table as vLogiciel where vLogiciel.DONNEE='versionLOgiciel' and vLogiciel.IDPRODUIT=table.IDPRODUIT) as versionLog
      , (select VALEUR from table as vBase where vBase.DONNEE='versionBase' and vBase.IDPRODUIT=table.IDPRODUIT) as versionBas
from table
group by IDPRODUIT


-------------------
Oderint dum metuant
0
Rejoignez-nous