Calculs aux sauts de champs de tri

Comment :

Référence :

Vous pouvez utiliser les commandes RECAP et COMPUTE afin de créer des valeurs de sous-total dans un calcul. Les valeurs de sous-total ne s'affichent pas. Seul le résultat du calcul s'affiche dans le rapport.


Haut de page

x
Syntaxe : Utiliser des sous-totaux dans des calculs

Les commandes RECAP et COMPUTE ont les deux une syntaxe similaire à celle d'autres commandes de sous-total.

{BY|ON} fieldname1 {RECAP|COMPUTE} fieldname2[/format] = expression;
                                      [WHEN expression;]

où :

fieldname1

Est le champ dans la phrase BY. Chaque fois que le champ BY change de valeur, une nouvelle valeur RECAP est calculée.

fieldname2

Est le nom de champ comprenant le résultat de l'expression.

/format

Peut être tout format valable. Le format par défaut est D12.2.

expression

peut être une expression valable, comme le décrit Utilisation d'expressions. L'expression doit terminer par un point virgule.

WHEN expression

Ne peut être utilisée qu'avec RECAP. Elle spécifie l'affichage conditionnel des lignes RECAP, comme le spécifie une expression booléenne (consultez Affichage conditionnel de lignes et de texte récapitulatifs. L'expression doit terminer par un point virgule.


Haut de page

x
Référence : Notes d'utilisation pour RECAP et COMPUTE


Exemple : Utilisation de RECAP

La requête suivante illustre l'utilisation de la commande RECAP (DEPT_NET) pour déterminer les profits nets de chaque service :

TABLE FILE EMPLOYEE
SUM DED_AMT AND GROSS
BY DEPARTMENT BY PAY_DATE
ON DEPARTMENT RECAP DEPT_NET/D8.2M = GROSS-DED_AMT;
WHEN PAY_DATE GT 820101
END

La sortie est :

DEPARTMENT  PAY_DATE          DED_AMT            GROSS
----------  --------          -------            -----
MIS         81/11/30        $1,406.79        $2,147.75
            81/12/31        $1,406.79        $2,147.75
            82/01/29        $1,740.89        $3,247.75
            82/02/26        $1,740.89        $3,247.75
            82/03/31        $1,740.89        $3,247.75
            82/04/30        $3,386.73        $5,890.84
            82/05/28        $3,954.35        $6,649.50
            82/06/30        $4,117.03        $7,460.00
            82/07/30        $4,117.03        $7,460.00
            82/08/31        $4,575.72        $9,000.00
                                                      
** DEPT_NET           $22,311.98                      
                                                      
PRODUCTION  81/11/30          $141.66          $833.33
            81/12/31          $141.66          $833.33
            82/01/29        $1,560.09        $3,705.84
            82/02/26        $2,061.69        $4,959.84
            82/03/31        $2,061.69        $4,959.84
            82/04/30        $2,061.69        $4,959.84
            82/05/28        $3,483.88        $7,048.84
            82/06/30        $3,483.88        $7,048.84
            82/07/30        $3,483.88        $7,048.84
            82/08/31        $4,911.12        $9,523.84
                                                      
** DEPT_NET           $27,531.14


Exemple : Utilisation de commandes RECAP multiples

Vous pouvez inclure des commandes RECAP ou COMPUTE multiples dans une requête. Cette option vous permet d'effectuer différents calculs à différents ruptures de contrôle.

La requête suivante illustre l'utilisation de commandes RECAP multiples.

TABLE FILE SALES
SUM UNIT_SOLD AND RETURNS
WHERE AREA EQ 'U' 
BY DATE BY AREA BY PROD_CODE
ON DATE RECAP
DATE_RATIO=RETURNS/UNIT_SOLD;
ON AREA UNDER-LINE RECAP
AREA_RATIO=RETURNS/UNIT_SOLD;
END

La sortie est :

DATE   AREA  PROD_CODE  UNIT_SOLD  RETURNS
----   ----  ---------  ---------  -------
10/17  U     B10               30        2
             B17               20        2
             B20               15        0
             C17               12        0
             D12               20        3
             E1                30        4
             E3                35        4
                                          
** AREA_RATIO                      .09    
                                          
** DATE_RATIO                      .09    
                                          
------------------------------------------
10/18  U     B10               13        1
                                          
** AREA_RATIO                      .08    
                                          
** DATE_RATIO                      .08    
                                          
------------------------------------------
10/19  U     B12               29        1
                                          
** AREA_RATIO                      .03    
                                          
** DATE_RATIO                      .03    
                                          
------------------------------------------

WebFOCUS