
Une matrice est une grille semblable à la représentation des données. Il a une ligne d'étiquettes, étiquettes d'une colonne et, dans une grille, les données liées à la fois de ligne et de colonne. Grille des rapports sont également appelés croisée rapports.
Une matrice rapport a un groupe de données pour les lignes, un groupe de données pour les colonnes, un groupe de données croisées de produits et d'un groupe de données de la valeur pour le cross-produit. La croix-groupe de produits représente toutes les combinaisons possibles de groupes de lignes et de colonnes.
Voyons un exemple. Supposons que vous disposez d'une table appelée Inv_summary. Il a trois colonnes: Inv_date, Inv_status et Inv_value. Maintenant, vous voulez générer un rapport qui montre la valeur totale de l'ouverture et de clôture de factures pour chaque mois, par exemple comme ci-dessous.
MOIS OPEN CLOSE
-------- ------------ ------------
Jan-07 20 19
Février-07 0 153
Mars-07 18 56
Avril-07 43 0
Mai-07 93 0
Juin-07 79 0
Juillet-07 112 0
Voici les étapes pour générer le rapport.
- Créer une table Inv_summary.
- Insérer des données dans Inv_summary table.
- Exécuter la commande SQL suivante pour générer le rapport.
Créer une table Inv_summary (Inv_date date, Inv_status VARCHAR2 (1), Inv_value nombre);
Insérer dans Inv_summary valeurs ('01-jan-07 ',' O ', 20.00);
Insérer dans Inv_summary valeurs ('01-jan-07 ',' C ', 12,00);
Insérer dans Inv_summary valeurs ('10-jan-07 ',' C ', 7.00);
Insérer dans Inv_summary valeurs ('05-feb-07 ',' C ', 153,00);
Insérer dans Inv_summary valeurs ( «12-mar-07 ',' C ', 48,00);
Insérer dans Inv_summary valeurs ( «15-mar-07 ',' C ', 8.00);
Insérer dans Inv_summary valeurs ( «23-mar-07 ',' O ', 18.00);
Insérer dans Inv_summary valeurs ( «20-avril-07 ',' O ', 43,00);
Insérer dans Inv_summary valeurs ('01-mai-07 ',' O ', 61.00);
Insérer dans Inv_summary valeurs ('01-mai-07 ',' O ', 32.00);
Insérer dans Inv_summary valeurs ('01-juin-07 ',' O ', 18.00);
Insérer dans Inv_summary valeurs ('01-juin-07 ',' O ', 33,00);
Insérer dans Inv_summary valeurs ('01-juin-07 ',' O ', 28,00);
Insérer dans Inv_summary valeurs ('01-juil-07 ',' O ', 20.00);
Insérer dans Inv_summary valeurs ('01-juil-07 ',' O ', 24,00);
Insérer dans Inv_summary valeurs ('01-juil-07 ',' O ', 68,00);
Commit;
SELECT to_char (to_date (to_char (inv_date, 'Mon-yy'), 'Mon-yy'), 'Mon-yy') mois,
sum (decode (inv_status, 'O', inv_value, 0)) Open,
sum (decode (inv_status, 'C', inv_value, 0)) Fermer
DE Inv_summary
GROUP BY to_date (to_char (inv_date ", lundi-yy '),' Mon-yy ')
ORDER BY to_date (to_char (inv_date, 'Mon-yy'), 'Mon-yy')
MOIS OPEN CLOSE
------------ ------------ ---------
Jan-07 20 19
Février-07 0 153
Mars-07 18 56
Avril-07 43 0
Mai-07 93 0
Juin-07 79 0
Juillet-07 112 0
Dans l'exemple ci-dessus, nous avons créée afin que le groupe va invoice_status dans le mois et le groupe va, en formant une grille qui indique la valeur totale des factures. La clé dans la commande SQL est au-dessus de la fonction DECODE. Il convertit les lignes dans les colonnes de la vérification de la valeur de la colonne Inv_status. Vous pouvez écrire une matrice rapport avec une ou plusieurs requêtes. Une seule requête est généralement plus efficace que d'une requête multiple.

Delicious
Digg
Google
Yahoo