Réglage de précision du traitement MATCH

Vous pouvez régler la précision du processus MATCH à l'aide des commandes PRINT et SUM. Pour comprendre la différence entre ces deux commandes, il faut d'abord comprendre la relation de type « one-to-many » : SUM génère un enregistrement unique à partir de plusieurs enregistrements, tandis que PRINT affiche chaque enregistrement individuel. Si vous choisissez les bons champs BY, il est possible d'utiliser une commande SUM pour obtenir le même résultat que le ferait la commande PRINT.


Haut de page

Exemple : Utilisation de commandes d'affichage dans le traitement MATCH

Pour illustrer les effets de PRINT et de SUM sur le processus MATCH, considérez les sources de données A et B et la série des requêtes suivantes :

     A               B
 
F1  F2  F3      F1  F4  F5
 
1   x   100     1   a   10
2   y   200     1   b   20
                2   c   30
                2   d   40

Requête 1 : Cette requête additionne les champs F2 et F3 du fichier A, additionne les champs F4 et F5 du fichier B, et utilise F1 comme critère de tri de niveau supérieur commun.

MATCH FILE A
SUM F2 AND F3 BY F1
RUN 
FILE B
SUM F4 AND F5 BY F1
AFTER MATCH HOLD OLD-OR-NEW
END

Le fichier HOLD contient les données suivantes :

F1   F2   F3   F4   F5
 
1    x    100  b    30
2    y    200  d    70

Notez que le fichier résultant ne contient qu'un seul enregistrement pour chaque critère de tri de niveau supérieur commun.

Requête 2 : Cette requête additionne les champs F2 et F3 du fichier A, imprime les champs F4 et F5 du fichier B, et utilise F1 comme critère de tri de niveau supérieur commun.

MATCH FILE A
SUM F2 AND F3 BY F1
RUN 
FILE B PRINT F4 AND F5 BY F1
AFTER MATCH HOLD OLD-OR-NEW
END

Le fichier HOLD contient :

F1   F2   F3   F4   F5
 
1    x    100  a    10
1    x    100  b    20
2    y    200  c    30
2    y    200  d    40

Notez qu'un double des enregistrements du fichier A est fait pour chaque enregistrement du fichier B.

Requête 3 : Cette requête imprime les champs F2 et F3 du fichier A, additionne les champs F4 et F5 du fichier B, et utilise F1 comme critère de tri de niveau supérieur commun.

MATCH FILE A
PRINT F2 AND F3 BY F1
RUN 
FILE B
SUM F4 AND F5 BY F1
AFTER MATCH HOLD OLD-OR-NEW
END

Le fichier HOLD contient :

F1   F2   F3   F4   F5
 
1    x    100  b    30
2    y    200  d    70

Notez que chaque enregistrement du fichier A est compris dans la requête, mais seulement le dernier enregistrement du fichier B est compris pour chaque critère de tri de niveau supérieur.

Requête : Cette requête imprime les champs F2 et F3 du fichier A, imprime les champs F4 et F5 du fichier B, et utilise F1 comme critère de tri de niveau supérieur commun.

MATCH FILE A
PRINT F2 AND F3 BY F1
RUN 
FILE B PRINT F4 AND F5 BY F1
AFTER MATCH HOLD OLD-OR-NEW
END

Le fichier HOLD contient :

F1   F2   F3   F4   F5
 
1    x    100  a    10
1         0    b    20
2    y    200  c    30
2         0    d    40

Veuillez remarquer la valeur vide pour le champ F2 et le zéro pour le champ F3.

Requête 5 : Cette requête additionne les champs F2 et F3 du fichier A, additionne le champ F5 du fichier B et le trie en fonction du champ F1, le critère de tri de niveau supérieur commun, et en fonction de F4.

MATCH FILE A
SUM F2 AND F3 BY F1
RUN 
FILE B
SUM F5 BY F1 BY F4
AFTER MATCH HOLD OLD-OR-NEW
END

Le fichier HOLD contient :

F1   F2   F3   F4   F5
 
1    x    100  a    10
1    x    100  b    20
2    y    200  c    30
2    y    200  d    40

Veuillez remarquer que les enregistrements du fichier A sont imprimés pour chaque instance de l'enregistrement du fichier B.


WebFOCUS