Im aktuellen Artikel wird gezeigt, wie das Synonym, welches für eine Stored Procedure mit zwei Antwortmengen erstellt und mit verschiedenen Hierarchien versehen wurde, für Reports, Diagramme und Visualisierungen eingesetzt werden kann.
Was bisher geschah
In den letzten Artikeln habe ich eine SQL Stored Procedure vorgestellt, die zwei Ergebnismengen erzeugt. Diese beiden Mengen sollen in Db2 Web Query als Input verwendet werden, um verschiedene Reports zu erzeugen. Den Code für diese Prozedur, die ich SPTKL nannte, finden Sie weiter unten. Die Vorbereitungen und Erstellung des Synonyms, das für die Verarbeitung mit Db2 Web Query erforderlich ist, sind in den vorherigen Artikeln zu dieser Reihe beschrieben.
Im letzten Artikel wurde das Synonym mit verschiedenen hierarchischen Dimensionen versehen. Diese können nun benutzt werden, um Abhängigkeiten und Drilldown-Funktionalitäten in Reports, Diagramme und Visualisierungen zu realisieren.
Die als Beispiel verwendete Stored Procedure (SP):
— Stored Procedure zum Vergleichen der Monatswerte Umsatz, Kosten und Profit eines Jahres mit denen des Vorjahres
CREATE OR REPLACE PROCEDURE Qwqcent.SPTKL()
DYNAMIC RESULT SETS 2
LANGUAGE SQL
BEGIN
DECLARE C1 CURSOR FOR
WITH A AS (
SELECT Country, Region, State, City, YEAR(Orderdate) AS Ordyy,
MONTH(Orderdate) AS Ordm, MONTHNAME(Orderdate) AS Ordmn,
(Linetotal * Quantity) AS Revenue, (Costofgoodssold * Quantity) AS Extcost,
(Linetotal * Quantity) – (Costofgoodssold * Quantity) AS Extprofit
FROM Qwqcent.Orders O
JOIN Qwqcent.Stores S
ON O.Storecode = S.Storecode
)
SELECT Country, Region, State, City, Ordyy,
Ordyy || ‚-‚ || Substr(Digits(Ordm), 9, 2) AS Period, Ordmn,
Sum(Revenue) AS Periodrev, Sum(Extcost) AS Periodcost,
Sum(Extprofit) AS Periodprofit
FROM A
GROUP BY Country, Region, State, City, Ordyy, Ordyy || ‚-‚ ||
Substr(Digits(Ordm), 9, 2), Ordmn
ORDER BY Country, Region, State, City, Ordyy, Ordyy || ‚-‚ ||
Substr(Digits(Ordm), 9, 2), Ordmn Desc;
DECLARE C2 CURSOR FOR
WITH A AS (
SELECT Producttype, Productcategory, Productname, Model, O.Productnumber,
Year(Orderdate) AS Ordyy, Month(Orderdate) AS Ordm,
Monthname(Orderdate) AS Ordmn, (Linetotal * Quantity) AS Revenue,
(Costofgoodssold * Quantity) AS Extcost,
(Linetotal * Quantity) – (Costofgoodssold * Quantity) AS Extprofit
FROM Qwqcent.Orders O
JOIN Qwqcent.Inventory I
ON O.Productnumber = I.Productnumber
)
SELECT Producttype, Productcategory, Productname, Model, Productnumber,
Ordyy || ‚-‚ || Substr(Digits(Ordm), 9, 2) AS Period, Ordmn,
Sum(Revenue) AS Periodrev, Sum(Extcost) AS Periodcost,
Sum(Extprofit) AS Periodprofit
FROM A
GROUP BY Producttype, Productcategory, Productname, Model, Productnumber, Ordyy ||
‚-‚ || Substr(Digits(Ordm), 9, 2), Ordmn
ORDER BY Producttype, Productcategory, Productname, Model, Productnumber, Ordyy ||
‚-‚ || Substr(Digits(Ordm), 9, 2), Ordmn DESC;
OPEN C1;
OPEN C2;
SET RESULT SETS CURSOR C1, CURSOR C2;
END;
Das Synonym wurde dahingehend bearbeitet, dass für jede Ergebnismenge (Answerset1 und Answerset2) in der Kategorie „Dimensionen“ eine Hierarchie erstellt wurde.
Bei Answerset1 wurden die Felder Country, Region, State, City zu einer Geografischen Hierarchie zusammengefasst.
Answerset2 wurde mit einer Produkthierarchie versehen, die aus den Feldern Producttype, Productcategory, Model, Productnumber besteht.
Hinweis: Das mit den Dimensionen und Hierarchien erweiterte Synonym habe ich unter folgendem Namen gespeichert: a_tkl/tkl_sptkl_dim.
Verwendung der im Synonym implementierten Dimensionen und Hierarchien
Sobald man einen Report mit dem erweiterten Synonym erstellt, erhält man folgende Darstellung mit dem InfoAssist:
Beispiele für die Verwendung von dimensionalen Hierarchien
Wie können die zuvor erstellten Hierarchien nun in Reports angewendet werden? Schauen wir uns zunächst ein Beispiel an mit dem Report-Typ Auto-Drilldown.
Beispiele Auto-Drilldown
Für den Report verwende ich das Synonym a_tkl/tkl_sptkl_dim, das zuvor mit den dimensionalen Hierarchien erstellt wurde. Die Hierarchien werden in der Feldliste am Ende dargestellt (siehe folgende Abbildung).
Für das Beispiel soll die Produkthierarchie von Answerset2 verwendet werden.
Mit der Menü-Auswahl wird das zugehörige Band geöffnet. Öffnen Sie die Kategorie Ausführen mit und aktivieren Sie Auto-Drilldown.
Erst beim Ausführen zeigt sich die aktivierte Drilldown-Funktionalität.
Die Produkttypen sind unterstrichen und mit einem Link versehen. Gemäß der im Synonym implementierten Produkthierarchie kann von Producttype zur nächst tieferen Ebene Productcategory verzweigt werden. Die unterste Ebene ist das Feld Productnumber beziehungsweise Productname.
Auf die gleiche Art und Weise kann eine Drilldown-Funktionalität mit dem Answerset1 und der Geografischen Hierarchie erstellt werden.
Visuelle Darstellungen von Daten
Wie zuvor gezeigt, können die Techniken auch für Diagramme eingesetzt werden. Im folgenden Beispiel werden mit dem InfoAssist ein Report und zwei Diagramme anhand derselben Datenmenge der Stored Procedure dargestellt. Die Darstellung erfolgt auf einer Seite mit drei verschiedenen Bereichen. Die Seite wird interaktiv aktualisiert, sobald eine Auswahl, ein Filter oder ein Drilldown in einem der Bereiche erfolgt.
Wird beispielsweise im Ringdiagramm (= eine spezielle Form eines Kreisdiagramms) ein Land wie Spanien (=das grüne Teilstück) ausgewählt, so kann ein Drilldown auf die nächsttiefere Ebene REGION durchgeführt werden (siehe obige Abbildung). Die Darstellung in allen drei Bereichen wird umgehend automatisch aktualisiert (siehe nächste Abbildung).
Neue Visuelle Daten-Seiten
Mit der Version 2.3 wurden die visuellen Möglichkeiten erweitert. Dies betrifft unter anderem auch das zweite Entwicklungstool DESIGNER. Damit kann eine Seite mit mehreren voneinander abhängigen Bereichen erstellt werden. Diese Bereiche werden Container genannt. Diese Visualisierungen sind dynamisch und können daher zur detaillierten Untersuchung der Daten verwendet werden.
Das folgende und auch letzte Beispiel zeigt eine Darstellung mit fünf verschiedenen und voneinander abhängigen Bereichen oder Containern. Die Filterauswahl kann über das Jahr und die Produkte erfolgen. Damit werden dann die Profitinformationen in verschiedenen Arten dargestellt.
Wenn der Benutzer das Jahr ändert, werden die drei oberen Diagramme neu kalibriert bzw. aktualisiert.
Wenn die Produktauswahl getroffen wird, werden beiden unteren Diagramme aktualisiert.
Vorschau: In den nächsten Artikeln geht es um die Verwendung von IBM i Services mit Db2 Web Query.
Bis dahin wünsche ich Ihnen weiterhin viel Spaß beim Vermehren Ihrer Fertigkeiten.
Der Autor Theo Bär schreibt regelmäßig für den TechKnowLetter.
Sie erreichen ihn unter
EDV-Beratung Theo Bär
Ringmauerweg 1
69250 Schönau
Tel.: (+49) 6228 912 630
E-Mail: [info@edv-baer.com]
Sechs Ausgaben des TechKnowLetters erhalten Sie hier für 88 Euro.