J'aimerais directement créé un tableau croisé dynamique à partir d'une instruction SQL.
J'ai cherché dans le documentation Oracle et voici ce que j'ai trouvé.
Exemple de tableau dynamique que j'aimerais réalisé. Il s'agit des ventes
par pays et par canal de ventes (internet ou vente direct).
Channel_______France______US_______Total
Internet______ 9,597_______124,224___133,821
Direct Sales___ 61,202______638,201___699,403
Total_________70,799______762,425___833,224
Il est aisé de remplir les champs de ce tableau hors sous total et total général avec un group by.
ORACLE fournit avec la fonction GROUP BY, les instructions ROLLUP ou CUBE qui fournisse alors les sous totaux et les totaux directement.
CHANNEL_DESC_______CO________SALES$
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT channels.channel_desc, countries.country_iso_code, TO_CHAR(SUM(amount_sold), '9,999,999,999') SALES$ FROM sales, customers, times, channels, countries WHERE sales.time_id=times.time_id AND sales.cust_id=customers.cust_id AND sales.channel_id= channels.channel_id AND channels.channel_desc IN ('Direct Sales', 'Internet') AND times.calendar_month_desc='2000-09' AND customers.country_id=countries.country_id AND countries.country_iso_code IN ('US','FR') GROUP BY CUBE(channels.channel_desc, countries.country_iso_code);
______________________________833,224
____________________FR________70,799
____________________US________762,425
Internet_______________________133,821
Internet_____________FR________9,597
Internet_____________US________124,224
Direct Sales____________________699,403
Direct Sales__________FR________61,202
Direct Sales__________US_______638,201
C'est génial sauf que la plupart de mes clients ne demande pas cette mise en forme mais plutôt le premier tableau.
D'ou ma question :
Est-il possible via une instruction sql d'avoir directement le premier tableau sans passer par du PL/SQL.
Plus d'info :
http://download-uk.oracle.com/docs/c...g.htm#g1014032
Merci d'avance.
Ps.: Et si quelqu'un me dit comment saisir un tableau dans le forum, je suis preneur. Désolé pour les underscore mais c'est tout ce que j'ai trouvé pour aligner les champs.
Partager