Un rapport de matrice est une grille de représentation de données. Il a une ligne d'étiquettes, d'une colonne d'étiquettes et, dans une grille de données liées à la fois en ligne et en colonne. Les rapports de matrice sont aussi appelés les rapports de tableau croisé.
Un rapport de matrice a un groupe de données pour les lignes, un groupe de données pour les colonnes, un groupe de données de la croix-produit et un groupe de données, comme la valeur de la croix-produit. La croix-groupe de produits représente toutes les combinaisons possibles de ligne et des groupes de colonnes.
prenons un coup d'oeil à un exemple. Supposons que vous disposez d'une table appelée Inv_summary. Il comporte trois colonnes: Inv_date, Inv_status et Inv_value. Maintenant, vous voulez générer un rapport qui montre la valeur totale de l'ouvrir et de fermer les factures pour chaque mois, par exemple comme ci-dessous.
MOIS, OUVERT à PROXIMITÉ
& & & & & & & & & & & & & & & &
Jan-07 20 19
Févr-07 0 153
-Mar-07 18 56
Apr-07 43 0
Peut-07 93 0
Jun-07 79 0
Juil-07 112 0
Voici les étapes pour générer le rapport.
- Créer une table Inv_summary.
Create table Inv_summary ( Inv_date date, Inv_status varchar2(1), Inv_value nombre)
- Insérer des données dans Inv_summary table.
Insert into Inv_summary values ('01-jan-07','O',20.00)
Insert into Inv_summary values ('01-jan-07','C',12.00)
Insert into Inv_summary values ('10-jan-07','C',7.00)
Insert into Inv_summary values ('05-févr-07','C',153.00)
Insert into Inv_summary values ('12-mar-07','C',48.00)
Insert into Inv_summary values ('15-mar-07','C',8.00)
Insert into Inv_summary values ('23-mar-07','O',18h00)
Insert into Inv_summary values ('20-avr-07','O',43.00)
Insert into Inv_summary values ('01-mai-07','O',61.00)
Insert into Inv_summary values ('01-mai-07','O',32.00)
Insert into Inv_summary values ('01-juin-07','O',18h00)
Insert into Inv_summary values ('01-juin-07','O',33.00)
Insert into Inv_summary values ('01-juin-07','O',28.00)
Insert into Inv_summary values ('01-juil-07','O',20.00)
Insert into Inv_summary values ('01-juil-07','O',24.00)
Insert into Inv_summary values ('01-juil-07','O',68.00)
Valider
- Exécuter la commande sql suivante pour générer le rapport.
SELECT to_char(to_date(to_char(inv_date,'Mon-yy'),'Mon-yy'),'Mon-yy') Mois,
sum(decode( inv_status, 'O', inv_value, 0 )) Ouvert,
sum(decode( inv_status, 'C', inv_value, 0 )) Fermer
DE Inv_summary
GROUPE PAR to_date(to_char(inv_date,'Mon-yy'),'Mon-yy')
COMMANDE PAR to_date(to_char(inv_date,'Mon-yy'),'Mon-yy')
MOIS, OUVERT à PROXIMITÉ
& & & & - & & & & & & & & & & & &
Jan-07 20 19
Févr-07 0 153
-Mar-07 18 56
Apr-07 43 0
Peut-07 93 0
Jun-07 79 0
Juil-07 112 0
Dans l'exemple ci-dessus, nous avons le configurer de sorte que la invoice_status groupe passe à travers et le groupe pour le mois va vers le bas, formant une grille qui montre la valeur totale de la facture. La clé de la partie au-dessus de la commande SQL est de DÉCODER de la fonction. Il convertit les lignes en colonnes en vérifiant la valeur de Inv_status colonne. Vous pouvez écrire un rapport de matrice avec une seule ou plusieurs requêtes. Une seule requête rapport est généralement plus efficace qu'un multiple de la requête.
Code un rapport de matrice dans sql
Code un rapport de matrice dans sql : Plusieurs milliers de conseils pour vous faciliter la vie.
Un rapport de matrice est une grille de representation de donnees. Il a une ligne d'etiquettes, d'une colonne d'etiquettes et, dans une grille de donnees liees a la fois en ligne et en colonne. Les rapports de matrice sont aussi appeles les rapports de tableau croise.
Un rapport de matrice a un groupe de donnees pour les lignes, un groupe de donnees pour les colonnes, un groupe de donnees de la croix-produit et un groupe de donnees, comme la valeur de la croix-produit. La croix-groupe de produits represente toutes les combinaisons possibles de ligne et des groupes de colonnes.
prenons un coup d'oeil a un exemple. Supposons que vous disposez d'une table appelee Inv_summary. Il comporte trois colonnes: Inv_date, Inv_status et Inv_value. Maintenant, vous voulez generer un rapport qui montre la valeur totale de l'ouvrir et de fermer les factures pour chaque mois, par exemple comme ci-dessous.
MOIS, OUVERT a PROXIMITE
& & & & & & & & & & & & & & & &
Jan-07 20 19
Fevr-07 0 153
-Mar-07 18 56
Apr-07 43 0
Peut-07 93 0
Jun-07 79 0
Juil-07 112 0
Voici les etapes pour generer le rapport.
- Creer une table Inv_summary.
Create table Inv_summary ( Inv_date date, Inv_status varchar2(1), Inv_value nombre)
- Inserer des donnees dans Inv_summary table.
Insert into Inv_summary values ('01-jan-07','O',20.00)
Insert into Inv_summary values ('01-jan-07','C',12.00)
Insert into Inv_summary values ('10-jan-07','C',7.00)
Insert into Inv_summary values ('05-fevr-07','C',153.00)
Insert into Inv_summary values ('12-mar-07','C',48.00)
Insert into Inv_summary values ('15-mar-07','C',8.00)
Insert into Inv_summary values ('23-mar-07','O',18h00)
Insert into Inv_summary values ('20-avr-07','O',43.00)
Insert into Inv_summary values ('01-mai-07','O',61.00)
Insert into Inv_summary values ('01-mai-07','O',32.00)
Insert into Inv_summary values ('01-juin-07','O',18h00)
Insert into Inv_summary values ('01-juin-07','O',33.00)
Insert into Inv_summary values ('01-juin-07','O',28.00)
Insert into Inv_summary values ('01-juil-07','O',20.00)
Insert into Inv_summary values ('01-juil-07','O',24.00)
Insert into Inv_summary values ('01-juil-07','O',68.00)
Valider
- Executer la commande sql suivante pour generer le rapport.
SELECT to_char(to_date(to_char(inv_date,'Mon-yy'),'Mon-yy'),'Mon-yy') Mois,
sum(decode( inv_status, 'O', inv_value, 0 )) Ouvert,
sum(decode( inv_status, 'C', inv_value, 0 )) Fermer
DE Inv_summary
GROUPE PAR to_date(to_char(inv_date,'Mon-yy'),'Mon-yy')
COMMANDE PAR to_date(to_char(inv_date,'Mon-yy'),'Mon-yy')
MOIS, OUVERT a PROXIMITE
& & & & - & & & & & & & & & & & &
Jan-07 20 19
Fevr-07 0 153
-Mar-07 18 56
Apr-07 43 0
Peut-07 93 0
Jun-07 79 0
Juil-07 112 0
Dans l'exemple ci-dessus, nous avons le configurer de sorte que la invoice_status groupe passe a travers et le groupe pour le mois va vers le bas, formant une grille qui montre la valeur totale de la facture. La cle de la partie au-dessus de la commande SQL est de DECODER de la fonction. Il convertit les lignes en colonnes en verifiant la valeur de Inv_status colonne. Vous pouvez ecrire un rapport de matrice avec une seule ou plusieurs requetes. Une seule requete rapport est generalement plus efficace qu'un multiple de la requete.