Pivot / Requête analyse croisée dans Oracle 10g (Dynamique numéro de colonne)

J'ai cette vue de la table

UserName      Product     NumberPurchaces
--------      -------     ---------------
'John Doe'    'Chair'     4
'John Doe'    'Table'     1
'Jane Doe'    'Table'     2
'Jane Doe'    'Bed'       1

Comment puis-je créer une requête qui doit fournir ce pivot vue dans Oracle 10g ?

 UserName   Chair   Table   Bed
 --------   -----   -----   ---
 John Doe   4       1       0
 Jane Doe   0       2       1

Aucun moyen de le faire de façon dynamique? J'ai vu tellement de nombreuses approches (décoder, PL/SQL boucles, les syndicats, 11g de pivot)

Mais je n'ai pas encore trouver quelque chose qui fonctionne pour moi sur la base de l'exemple ci-dessus


Modifier: je ne sais pas le nombre ou le type de produits dans le temps de développement, donc ce doit être dynamique

Vous ne pouvez pas. Toute instruction SQL particulier doit retourner un jeu de résultats avec le même nombre de colonnes, le nom des colonnes et les types de données des colonnes

OriginalL'auteur Eran Medan | 2010-08-13