Blog Pro de Jean-Baptiste HEREN

Notes d'un consultant Freelance en Informatique

To content | To menu | To search

Pivoter une table avec Sql Server 2005 >

Pivoter une table peut avoir un interêt, notamment pour faire du reporting. Voici un exemple simple d'utilisation ce cette commande SQL

Table initiale

On a au départ , des données stockées dans une table, selon le modèle code/valeur, les deux colonnes représentant une clé primaire.

-------------
|TABLE_BASE |
-------------
|Code     k |
|value    k |
-------------

Table Finale

On souhaite obtenir l'ensemble des valeurs associées à un code, sur une seule ligne. Dans cet exemple, on sait qu'il n'existe au maximum, que 9 valeurs associées à un même code.

-------------
|TABLE_PIVO |
-------------
|Code     k |
|value1     |
|value2     |
|value3     |
|value4     |
|value5     |
|value6     |
|value7     |
|value8     |
|value9     |
-------------

Commande SQL

Ici, on utilise un Rank pour générer la données sur laquelle sera faite le Pivot.

[SQL]
/* Code SQL pour gérérer les données Pivotées */
WITH Options
AS
(
SELECT code, value, rank() over(PARTITION BY code order by value) as POS
FROM TABLE_BASE
)
SELECT * FROM Options PIVOT (MAX(value) FOR POS IN ([1],[2],[3],[4],[5],[6],[7],[8],[9])
) AS pvt
Jean-Baptiste Heren

Author: Jean-Baptiste Heren

Stay in touch with the latest news and subscribe to the RSS Feed about this category

Comments are closed


no attachment



You Might Also Like

result_crosstab.png

Cognos Report : Display a different measure in row for the aggregated column

Following tip is when you use a Relational Datamodel (DMR). In a Cognos Report crosstab, If You need to Display different measure in the aggregated column, you can do it using a simple if-then-else...

Continue reading

Cognos 8 - convert a member unique name from one hierarchy to another

If you need to build any report or Event studio Query using the same data from different packages; and you want to prompt just once. You can convert the member unique name from one hierarchy to...

Continue reading