Reportspalten sortieren und aggregieren

Vorgehensweise:

Sie können mit der Phrase BY TOTAL Aggregation und Sortierung simultan auf numerische Spalten in Ihrem Report für einen Arbeitsgang anwenden. Damit BY TOTAL richtig funktioniert, müssen Sie einen aggregierenden Anzeigebefehl wie z. B. SUM verwenden. Ein nicht aggregierender Anzeigebefehl, wie z. B. PRINT, ruft die Daten einfach nur ab, ohne sie zu aggregieren. Datensätze werden entweder in aufsteigender oder absteigender Reihenfolge sortiert, basierend auf Ihrer Abfrage. Aufsteigende Reihenfolge ist der Default.

Sie können auch die Phrase BY TOTAL verwenden, um basierend auf Temporärwerten zu sortieren, die vom Befehl COMPUTE berechnet werden.

Hinweis: Auf z/OS wird die Sortierung mit dem aggregierten Wert berechnet mit einem externen Sortierpaket, selbst wenn EXTSORT = OFF.


Nach oben

x
Syntax: Eine Reportspalte sortieren und aggregieren
[RANKED] BY [HIGHEST|LOWEST [n] ] 
         TOTAL {display_field|COMPUTE name/format=expression;}

Hierbei gilt:

RANKED

Fügt dem Report eine Spalte hinzu, in der jedem aggregierten Sortierwert in der Reportausgabe eine Zahl zugewiesen wird. Wenn mehrere Zeilen dieselbe Rangzuweisung haben, wird die Rangnummer nur in der ersten Zeile angezeigt.

n

Ist die Anzahl der Sortierfeldwerte, die im Report angezeigt werden sollen. Wenn n weggelassen wird, werden alle Werte des berechneten Sortierfeldes angezeigt. Die Default-Reihenfolge ist aufsteigend.

display_field

Kann ein Feldname sein, ein Feldname, dem ein Operator vorangestellt wurde (d. h. prefixoperator.fieldname), oder ein berechneter Wert.

Ein BY TOTAL-Feld wird als Anzeigefeld behandelt, wenn die interne Matrix erstellt wird. Nachdem die Matrix erstellt wurde, werden die Ausgabezeilen aggregiert und erneut sortiert, basierend auf allen Sortierfeldern.



Beispiel: Reportspalten sortieren und aggregieren

In diesem Beispiel wird der Gehaltsdurchschnitt berechnet und als Sortierfeld verwendet. Es werden die zwei höchsten Gehälter im Report angezeigt.

TABLE FILE EMPLOYEE
SUM SALARY CNT.SALARY
BY DEPARTMENT
BY HIGHEST 2 TOTAL AVE.SALARY AS 'HIGHEST,AVERAGE,SALARIES'
BY CURR_JOBCODE
END

Die Ausgabe ist:



Beispiel: Reportspalten sortieren, aggregieren und ihnen Ränge zuweisen

In diesem Beispiel wird der Gehaltsdurchschnitt berechnet und als Sortierfeld verwendet. Es werden die zwei höchsten Gehälter angezeigt und es werden ihnen Ränge zugewiesen.

TABLE FILE EMPLOYEE
SUM SALARY CNT.SALARY
BY DEPARTMENT
RANKED BY HIGHEST 2 TOTAL AVE.SALARY AS 'HIGHEST,AVERAGE,SALARIES'
BY CURR_JOBCODE
END

Die Ausgabe ist:



Beispiel: Reportspalten mit COMPUTE sortieren und aggregieren

In diesem Beispiel wird das Monatsgehalt mit einem COMPUTE in einem Sortierfeld berechnet. Es werden die zwei höchsten Monatsgehälter angezeigt.

TABLE FILE EMPLOYEE
SUM SALARY CNT.SALARY
BY DEPARTMENT
BY HIGHEST 2 TOTAL COMPUTE MONTHLY_SALARY/D12.2M=SALARY/12;
AS 'HIGHEST,MONTHLY,SALARIES'
BY CURR_JOBCODE
END

Die Ausgabe ist:


WebFOCUS