
Eine Matrix ist ein Raster-Darstellung von Daten. Es hat eine Reihe von Etiketten, eine Spalte von Etiketten und in einer Tabelle die Daten in Bezug auf die Zeile und Spalte. Matrix-Berichte sind auch Berichte von Kreuztabellen.
Eine Matrix Bericht einer Gruppe von Daten für die Zeilen, einer Gruppe von Daten für die Spalten, eine Gruppe von Kreuz-Produkt-und eine Gruppe von Daten, wie der Wert für die Cross-Produkt. Die Cross-Produkt-Gruppe steht für alle möglichen Kombinationen von Zeilen und Spalten Gruppen.
Werfen wir einen Blick auf ein Beispiel. Angenommen, Sie haben eine Tabelle namens Inv_summary. Es hat drei Spalten: Inv_date, Inv_status und Inv_value. Nun, Sie wollen einen Bericht zeigt, dass der Gesamtwert öffnen und schließen Rechnungen für jeden Monat, zum Beispiel wie unten.
MONAT OPEN CLOSE
-------- ------------ ------------
Jan-07 20 19
Feb-07 0 153
März-07 18 56
Apr-07 43 0
Mai-07 93 0
Jun-07 79 0
Jul-07 112 0
Hier sind die Schritte, um den Bericht.
- Erstellen Sie eine Tabelle Inv_summary.
- Legen Sie einige Daten in Inv_summary Tisch.
- Führen Sie die folgenden SQL-Befehl, um den Bericht.
CREATE TABLE Inv_summary (Inv_date Datum, Inv_status VARCHAR2 (1), Inv_value Zahl);
Legen Sie in Inv_summary Werte ('01-Jan-07 ',' O ', 20,00);
Legen Sie in Inv_summary Werte ('01-Jan-07 ',' C ', 12.00 Uhr);
Legen Sie in Inv_summary Werte ('10-Jan-07 ',' C ', 7.00);
Legen Sie in Inv_summary Werte ('05-Feb-07 ',' C ', 153,00);
Legen Sie in Inv_summary Werte ('12-MAR-07 ',' C ', 48,00);
Legen Sie in Inv_summary Werte ('15-MAR-07 ',' C ', 8.00);
Legen Sie in Inv_summary Werte ('23-MAR-07 ',' O ', 18.00 Uhr);
Legen Sie in Inv_summary Werte ('20-Apr-07 ',' O ', 43,00);
Legen Sie in Inv_summary Werte ('01-Mai-07 ',' O ', 61,00);
Legen Sie in Inv_summary Werte ('01-Mai-07 ',' O ', 32.00);
Legen Sie in Inv_summary Werte ('01-Jun-07 ',' O ', 18.00 Uhr);
Legen Sie in Inv_summary Werte ('01-Jun-07 ',' O ', 33,00);
Legen Sie in Inv_summary Werte ('01-Jun-07 ',' O ', 28,00);
Legen Sie in Inv_summary Werte ('01-Juli-07 ',' O ', 20,00);
Legen Sie in Inv_summary Werte ('01-Juli-07 ',' O ', 24,00);
Legen Sie in Inv_summary Werte ('01-Juli-07 ',' O ', 68,00);
COMMIT;
SELECT TO_CHAR (to_date (TO_CHAR (inv_date, 'Mo-yy'), 'Mo-yy'), 'Mo-yy ") Monat,
sum (decode (inv_status, 'O', inv_value, 0)) öffnen,
sum (decode (inv_status, 'C', inv_value, 0)) schliessen
AUS Inv_summary
GROUP BY to_date (TO_CHAR (inv_date, 'Mo-yy'), 'Mo-jj)
ORDER BY to_date (TO_CHAR (inv_date, 'Mo-yy'), 'Mo-jj)
MONAT OPEN CLOSE
--------- ------------ ------------
Jan-07 20 19
Feb-07 0 153
März-07 18 56
Apr-07 43 0
Mai-07 93 0
Jun-07 79 0
Jul-07 112 0
In dem obigen Beispiel, haben wir es so, dass die invoice_status Gruppe und führt über den Monat Gruppe geht, bildet ein Raster, das zeigt, Gesamtwert der Rechnungen. Der wichtigste Teil in der oben genannten SQL-Befehl ist DECODE Funktion. Er wandelt Zeilen in Spalten, indem Sie den Wert der Spalte Inv_status. Sie können eine Matrix Bericht mit Einzel-oder mehrere Anfragen. Eine einzige Abfrage Bericht ist in der Regel effizienter als ein Vielfaches Abfrage.

Delicious
Digg
Google
Yahoo