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.
[RANKED] BY [HIGHEST|LOWEST [n] ] TOTAL {display_field|COMPUTE name/format=expression;}
Hierbei gilt:
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.
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.
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.
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:
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:
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 |