In den letzten beiden 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 im ersten Artikel zu dieser Reihe.

Im letzten Artikel wurde die Stored Procedure für die Verarbeitung mit Db2 Web Query vorbereitet, indem die erforderlichen Metadaten erstellt wurden. Nun wird anhand der erstellten Metadaten zunächst ein Report erzeugt. Danach werden verschiedene Manipulationen der Metadaten durchgeführt, damit eine komplexe Visualisierung mit einfachen Mitteln durchgeführt werden kann.

 

Visualisierung der Daten einer Stored Procedure

Ausnahmsweise nehme ich einmal das Ergebnis meiner Artikelserie vorweg. Die Daten, die für die Erstellung der folgenden Visualisierung verwendet wurden, stammen von einer Stored Procedure, die in den letzten beiden Artikeln schrittweise für die Verwendung von Web Query vorbereitet wurde.

Visualisierung mit den Ergebnismengen der Stored ProcedureQuelle: Bär

Visualisierung mit den Ergebnismengen der Stored Procedure

 

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;

 

Die Prozedur kann nun in SQL-Scripts ausgeführt werden mit:

CALL QWQCENT.SPTKL();

Als Ergebnis sollten dadurch die beiden Ergebnisfenster erstellt werden:

Die beiden Ergebnisfenster der Prozedur SPTKL Quelle: Bär

Die beiden Ergebnisfenster der Prozedur SPTKL

 

Weitere Informationen zur Erstellung des Synonyms für die Stored Procedure finden Sie in den beiden vorherigen Artikeln.

 

Mit den Daten einer Stored Procedure mit zwei Ergebnismengen einen Report erstellen

Wie bereits erwähnt, liefert die Stored Procedure zwei Ergebnismengen, die standardmäßig mit ANSWERSET1 und  ANSWERSET2 bezeichnet werden. Für einen Report können immer nur Felder einer Ergebnismenge verwendet werden. Wird diese Regel nicht beachtet und werden für einen Report Felder aus beiden Ergebnismengen eingesetzt, führt das zu einem Abbruchfehler.

Daher ist immer zu beachten:

Für einen Report können immer nur Daten eines ANSWERSET verwendet werden können.

Mit der Version 2.3.0 von Db2 Web Query sind zwei Tools zum Erstellen von Reports verfügbar:

  • InfoAssist
  • Designer

Im folgenden zeige ich Ihnen für jedes Tool wie die Erstellung von zwei Auswertungen mit einem Synonym erfolgen kann.

 

InfoAssist: Zwei Berichte / Auswertungen gleichzeitig für beide Antwortsets erstellen:

Im folgenden Beispiel erstelle ich mit den beiden Antwortsets zwei getrennte Auswertungen in einem Schritt. Mit dem ANSWERSET1 wird ein wird Raster (= Berichtsformat) erzeugt. Das ANSWERSET2 dient als Grundlage für ein Diagramm mit dem Profit nach Produkttypen und Periode.

Der Einstieg erfolgt über das Hauptportal und der Auswahl Arbeitsbereiche. Damit erscheinen die bereits vorhandenen Arbeitsbereiche. Wählen Sie Ihren Arbeitsbereich aus (für mein Beispiel verwende ich den Arbeitsbereich a_tkl).

Als nächstes wähle ich InfoAssist + Visualisierung. Damit kann ich gleichzeitig mehrere Auswertungen erstellen.

Auswahl Visualisierung mit InfoAssistQuelle: Bär

Auswahl Visualisierung mit InfoAssist

 

Nach Auswahl der Datenquelle, welche als Synonym für die Stored Procedure erstellt wurde (bei mir: tkl_sptkl), werden die Datenfelder wie folgt angezeigt:

Anzeige der Datenfelder beider AntwortsetsQuelle: Bär

Anzeige der Datenfelder beider Antwortsets

 

Leider ist hier nicht sofort zu erkennen, welche Daten zu ANSWERSET1 und welche zu ANSWERSET2 gehören.

Abhilfe schafft hier die Menüauswahl Ansicht und danach Strukturiert. Damit wird eine hierarchische Datenstruktur erstellt, bei der die Felder der beiden Datenmengen getrennt dargestellt werden:

Anzeige der Datenfelder beider Antwortsets getrenntQuelle: Bär

Anzeige der Datenfelder beider Antwortsets getrennt

 

Mit der Auswahl Start –> Einfügen füge ich nun ein Raster und ein Diagramm ein.

Einfügen von Raster und DiagrammQuelle: Bär

Einfügen von Raster und Diagramm

 

Für das Raster verwende ich die Datenfelder von ANSWERSET1 und für das Diagramm die Datenfelder von ANSWERSET2 und erhalte die folgenden Auswertungen:

Zwei Antwortsets für zwei AuswertungenQuelle: Bär

Zwei Antwortsets für zwei Auswertungen

 

Hier sind nochmals die einzelnen Schritte aufgeführt:

Auswahl: InfoAssist –> Visualisierung –> Synonym tkl_sptkl –> Ansicht –> Strukturiert (damit Übersicht nach ANSWERSET1 und ANSWERSET2) –> Einfügen Raster –> Einfügen Diagramm –> Felder aus ANSWERSET1 in Raster-1, Felder aus Answerset2 in Diagramm1

 

Designer: Zwei Berichte / Auswertungen gleichzeitig für beide Antwortsets erstellen:

Das Arbeiten mit dem Designer wird über das Hauptportal und der Auswahl Daten visualisieren gstartet. Danach erfolgt die Auswahl der Datenquelle (wie oben). Im Unterschied zur Arbeit mit dem InfoAssist werden hier die beiden Answersets bereits getrennt angezeigt.

Designer mit den Daten der Stored ProcedureQuelle: Bär

Designer mit den Daten der Stored Procedure

 

Um mehrere Auswertungen wie Raster und Diagramme darstellen zu können, werden hier sogenannte Container  verwendet.

Container in Designer hinzufügenQuelle: Bär

Container in Designer hinzufügen

 

Designer mit zwei ContainernQuelle: Bär

Designer mit zwei Containern

 

Damit kann nun ein Bericht (= Raster) und ein Diagramm entsprechend der Anordnung wie mit dem InfoAssist erstellt werden.

Container-1 mit Daten von Answerset1 und Conatainer-2 mit Daten von Answerset2Quelle: Bär

Container-1 mit Daten von Answerset1 und Conatainer-2 mit Daten von Answerset2

 

Vorschau:

Im nächsten Artikel im TechKnowLetter zeige ich Ihnen, wie das Synonym für die hier beschriebene Stored Procedure überarbeitet und dann für die Visualisierung mit Web Query verwendet werden kann.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.