Comment : |
En utilisant la phrase BY TOTAL, vous pouvez appliquer l'agrégation et le tri simultanément aux colonnes numériques dans votre rapport en un seul passage de données. Pour que BY TOTAL fonctionne correctement, vous devez avoir une commande d'affichage d'agrégation, telle que SUM. Une commande d'affichage non-agrégée, telle que PRINT, ne fait que récupérer les données sans les agréger. Les enregistrements sont triés dans l'ordre croissant ou décroissant, selon votre requête. L'ordre croissant est la valeur par défaut.
Vous pouvez aussi utiliser la phrase BY TOTAL pour trier selon des valeurs temporaires calculées par la commande COMPUTE.
Remarque : sur z/OS et VM, le tri de la valeur agrégée est calculé en utilisant un paquetage de tri externe, même si EXTSORT = OFF.
[RANKED] BY [HIGHEST|LOWEST [n] ] TOTAL {display_field|COMPUTE name/format=expression;}
où :
Ajoute une colonne au rapport dans lequel un numéro de classement est attribué à chaque valeur de tri agrégée dans la sortie de rapport. Si plusieurs lignes ont le même classement, le numéro de classement n'apparaît que sur la première ligne.
Est le nombre de valeurs de critère de tri que vous souhaitez afficher dans le rapport. Si n est omis, toutes les valeurs du critère de tri calculé sont affichées. L'ordre par défaut est l'ordre croissant.
Peut être un nom de champ, un nom de champ précédé d'un opérateur (c'est-à-dire, operateurprefixe.nomdechamp) ou une valeur calculée.
Un champ BY TOTAL est traité comme un champ d'affichage lors de la création d'une matrice interne. Une fois la matrice créée, les lignes de sortie sont agrégées et triées de nouveau selon tous les critères de tri.
Dans cet exemple, la moyenne des salaires est calculée et utilisée comme critère de tri. Les deux salaires les plus hauts sont affichés dans le rapport.
TABLE FILE EMPLOYEE SUM SALARY CNT.SALARY BY DEPARTMENT BY HIGHEST 2 TOTAL AVE.SALARY AS 'HIGHEST,AVERAGE,SALARIES' BY CURR_JOBCODE END
La sortie est :
Dans cet exemple, la moyenne des salaires est calculée et utilisée comme critère de tri, et les deux plus hauts salaires sont affichés et classés.
TABLE FILE EMPLOYEE SUM SALARY CNT.SALARY BY DEPARTMENT RANKED BY HIGHEST 2 TOTAL AVE.SALARY AS 'HIGHEST,AVERAGE,SALARIES' BY CURR_JOBCODE END
La sortie est :
Dans cet exemple, le salaire mensuel est calculé en appliquant une commande COMPUTE à un critère de tri. Les deux salaires mensuels les plus élevés sont affichés.
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
La sortie est :
WebFOCUS |