Commande APPEND

Associe des enregistrements provenant de plusieurs tables Analytics en les ajoutant à une table Analytics.

Syntaxe

APPEND table_1; table_2; <...n> TO nom_table <COMMONFIELDS> <OPEN> <ASCHAR> <ALLCHAR> <SOURCETABLE>

Paramètres

Nom Description
table_1; table_2; <...n>

Les tables à concaténer.

Les enregistrements de chaque table sont concaténés dans l'ordre dans lequel vous avez indiqué les tables. La table de sortie contient les enregistrements de la table_1, suivis des enregistrements de la table_2 et ainsi de suite.

Les tables source peuvent avoir des structures d'enregistrement identiques ou différentes et peuvent être triées ou non.

TO nom_table

Emplacement vers lequel envoyer les résultats de la commande :

  • nom_table enregistre les résultats dans une table Analytics

    Indiquez nom_table sous forme de chaîne entre guillemets avec une extension de fichier .FIL. Par exemple : TO "Sortie.FIL"

    Par défaut, le fichier de données de table (.FIL) est enregistré dans le dossier contenant le projet Analytics.

    Utilisez un chemin de fichier absolu ou relatif pour enregistrer le fichier de données dans un autre dossier existant :

    • TO "C:\Sortie.FIL"
    • TO "Résultats\Sortie.FIL"

    Remarque

    La longueur des noms des tables est limitée à 64 caractères alphanumériques, sans l'extension .FIL. Le nom peut inclure le caractère de soulignement ( _ ), mais aucun autre caractère spécial ni espace. Le nom ne peut pas commencer par un chiffre.

COMMONFIELDS

optionnel

Seuls les champs communs à toutes les tables en cours de concaténation sont inclus dans la table de sortie.

Si COMMONFIELDS est omis, tous les champs de toutes les tables figurent dans la table de sortie. Des valeurs vides apparaissent dans la table de sortie là où aucun champ n'existe dans les tables source.

Astuce

Pour voir les schémas et captures d'écran illustrant les deux options, reportez-vous à la rubrique Ajout de tables.

Remarque

La commande APPEND ne prend pas en charge la concaténation de champs calculés. Pour plus d'informations, consultez la section Les champs calculés ne sont pas pris en charge.

Qu'est-ce qui rend un champ « commun » ?

Pour que les champs soient considérés comme communs, ils doivent :

  • être présents dans chaque table source
  • avoir un nom physique identique
  • appartenir à la même catégorie de données :
    • Caractère
    • Numérique
    • DateHeure
    • Logique

Nom identique, catégorie de données différente

Si deux champs ont un nom identique mais appartiennent à différentes catégories de données, un message d'erreur apparaît et la commande APPEND n'est pas exécutée.

Le message d'erreur contient tous les conflits liés aux catégories de données dans l'ensemble des tables spécifiées par APPEND. Le message est enregistré dans la trace des commandes.

Remarque

Vous pouvez éviter cette situation en utilisant ASCHAR ou ALLCHAR pour harmoniser les catégories de données.

OPEN

optionnel

Ouvre la table créée par la commande après l'exécution de la commande. Valide uniquement lorsque la commande crée une table de sortie.

ASCHAR

optionnel

Harmonise les champs ayant des noms identiques mais des catégories de données différentes en convertissant des champs non caractère dans la catégorie de données caractère.

Par exemple, vous concaténez deux tables dans lesquelles le champ ID_Employé présente des données de type caractère dans une table et des données numériques dans l'autre. Le champ numérique ID_Employé est converti en données de type caractère et les deux champs sont concaténés sans erreur.

ASCHAR est ignoré si ALLCHAR est également spécifié.

ALLCHAR

optionnel

Convertit dans la catégorie de données de type caractère tous les champs qui ne sont pas de type caractère dans toutes les tables en train d'être concaténées.

Cette conversion globale en données de type caractère vérifie que tous les champs ayant un nom identique sont concaténés sans erreur.

Remarque

Après la concaténation, vous pouvez modifier la catégorie de données d'un champ concaténé dans son ensemble si celle-ci est adaptée aux données contenues dans le champ.

SOURCETABLE

optionnel

Incluez le champ Table source ( Table_source ) dans la table de sortie.

Pour chaque enregistrement de la table de sortie, le champ Table source identifie la table d’origine de l'enregistrement.

Astuce

Inclure les noms des tables sources que vous concaténez peut fournir des informations utiles lorsque vous analysez les données dans la table de sortie.

Exemples

Concaténer trois tables de transactions mensuelles

L'exemple ci-dessous concatène trois tables de transactions mensuelles et sort une table de transactions trimestrielle incluant uniquement tous les champs des trois tables source :

APPEND Trans_Jan; Trans_Fév; Trans_Mar TO Trans_Q1

Concaténer trois tables employés et inclure uniquement les champs communs

L'exemple ci-dessous ajoute trois tables Employés des divisions et sort une table maîtresse employés incluant uniquement les champs communs des trois tables source :

APPEND Employés_central; Employés_est; Employés_ouest TO Employés_maîtresse COMMONFIELDS

Concaténer trois tables employés et harmoniser les champs comportant différentes catégories de données

Les exemples ci-dessous concatènent trois tables employés de division dans lesquelles certains champs portant des noms identiques utilisent différentes catégories de données.

Le premier exemple convertit des champs non caractères dans la catégorie de données caractère uniquement si cela est nécessaire pour des questions d'harmonisation :

APPEND Employés_central; Employés_est; Employés_ouest TO Employés_maîtresse ASCHAR

Le deuxième exemple convertit tous les champs non caractères dans la catégorie de données caractère si cela est nécessaire pour des questions d'harmonisation ou non :

APPEND Employés_central; Employés_est; Employés_ouest TO Employés_maîtresse ASCHAR

Remarques

Remarque

Pour plus d'informations sur le fonctionnement de cette commande, consultez le Aide d'Analytics.

Fonctionnement

La commande APPEND associe les enregistrements provenant de plusieurs tables en les concaténant et en créant une nouvelle table. Par « concaténer », on entend ajouter un groupe d'enregistrements à la suite d'un autre groupe d'enregistrements.

Les champs des tables source ayant des noms physiques et des catégories de données identiques sont ajoutés directement les uns aux autres.

Les champs ayant des noms physiques uniques dans toutes les tables source sont ajoutés à la table de sortie, mais ils ne sont pas directement ajoutés aux autres champs.

Astuce

Si vous souhaitez concaténer directement des champs ayant des noms incohérents, standardisez les noms physiques des champs dans les formats de table avant de les concaténer. (Cela suppose que les champs appartiennnent à la même catégorie de données ou que vous utilisez ASCHAR ou ALLCHAR pour harmoniser les catégories de données des champs.)

Quand utiliser la commande APPEND

Utilisez APPEND lorsque vous souhaitez combiner des données provenant de plusieurs tables avec une structure identique ou similaire. Par exemple, APPEND est un bon choix pour combiner des tables mensuelles ou trimestrielles dans une table annuelle.

Astuce

Une seule exécution de la commande APPEND peut remplacer plusieurs exécutions de la commande EXTRACT avec l'option APPEND.

N'est pas un substitut à JOIN ou DEFINE RELATION

En général, APPEND n'est pas un substitut aux commandes JOIN ou DEFINE RELATION car elle ne vous permet pas d'inclure ou d'exclure des enregistrements selon des valeurs avec ou sans correspondance dans un champ clé commun. Avec APPEND, tous les enregistrements de chaque table source sont inclus dans la table de sortie.

Concaténer des tables complètement différentes

Vous pouvez concaténer des tables complètement différentes, c'est-à-dire plusieurs tables qui n'ont aucun champ en commun. Bien qu'il ne s'agisse pas de la principale utilisation prévue pour la commande APPEND, dans certains cas, concaténer des tables complètement différentes répond à un objectif analytique.

Concaténer des champs DateHeure

Pour qu'au moins deux champs DateHeure soient concaténés, les conditions suivantes doivent être remplies :

  • des noms physiques identiques
  • une catégorie de données identique (DateHeure)
  • des sous-types de données identiques (date, DateHeure ou heure)
  • utilisation identique d'un indicateur de fuseau horaire (utilisé ou inutilisé par tous les champs concaténés)

Si deux champs DateHeure ont un nom identique mais qu'ils ne répondent pas à l'une des autres conditions, un message d'erreur apparaît et la commande APPEND n'est pas exécutée.

Le message d'erreur contient toutes les conditions non remplies dans l'ensemble des tables spécifiées par APPEND. Le message est enregistré dans la trace des commandes.

Remarque

Vous pouvez harmoniser des champs DateHeure non similaires en les convertissant dans la catégorie de données caractère, puis les concaténer. Cette méthode vous permet de combiner les données dans une seule table. Toutefois, selon la nature des données source, il se peut que vous ne puissiez pas reconvertir ensuite les données converties en données DateHeure.

Harmonisation automatique

Dans certains cas, la commande APPEND harmonise automatiquement les champs pour les concaténer :

Catégorie de données des champs Harmonisation effectuée
Caractère
  • Les longueurs de champs différentes sont harmonisées.
  • Les types de données caractère (par ex., Custom, PCASCII et EBCDIC) qui diffèrent sont harmonisés en convertissant les champs dans le type de données ASCII ou UNICODE.
Numérique
  • Les longueurs de champs différentes sont harmonisées. Les champs sont convertis dans le type de données ACL.
  • Les quantités de décimales définies qui diffèrent sont harmonisées. Le nombre de décimales est standardisé par rapport au plus grand nombre de décimales ; des zéros non significatifs sont ajoutés aux valeurs numériques le cas échéant. Les champs sont convertis dans le type de données ACL.
  • Les types de données numériques (par ex., Print, Float, EBCDIC et Micro) qui diffèrent sont harmonisés en convertissant les champs dans le type de données ACL.
DateHeure
  • Dans les données source, les formats date, DateHeure et heure qui diffèrent sont harmonisés en convertissant les champs aux formats Analytics par défaut :
    • AAAAMMJJ
    • AAAAMMJJ hh:mm:ss
    • hh:mm:ss

Situations où l'harmonisation automatique n'est pas effectuée

Analytics n'harmonise pas les champs automatiquement dans les situations suivantes. Un message d'erreur s'affiche et l'opération de concaténation n'est pas exécutée.

  • Deux champs ayant un nom identique appartiennent à des catégories de données différentes.
  • Deux champs DateHeure ayant un nom identique appartiennent à des sous-types de DateHeure différents (date, DateHeure ou heure).
  • Deux champs DateHeure ayant un nom identique utilisent de manière incohérente l'indicateur de fuseau horaire.

Remarque

Vous trouverez ci-dessus des explications concernant l'harmonisation - spécifiée par l'utilisateur - des champs ayant des noms identiques mais des catégories de données différentes. Pour plus d'informations, consultez la section ASCHAR et ALLCHAR.

Les champs calculés ne sont pas pris en charge

La commande APPEND ne prend pas en charge la concaténation de champs calculés. Lorsque vous concaténez des tables, les champs calculés des tables source sont exclus automatiquement de la table de sortie.

Si un champ calculé dans une table source porte le même nom qu'un champ physique dans une autre table source, un message d'erreur apparaît et la commande APPEND n'est pas exécutée.

Astuce

Vous pouvez concaténer un champ calculé en commençant par l'extraire pour convertir ce champ en un champ physique. (Pour plus d'informations, consultez Commande EXTRACT.) Vous utilisez alors la table extraite dans l'opération de concaténation.

Une autre méthode consiste à recréer le champ calculé dans la table de sortie concaténée.

Les champs Notes d'enregistrement ne sont pas pris en charge

La commande APPEND ne prend pas en charge la concaténation de champs Notes d'enregistrement. Lorsque vous concaténez des tables, les champs Notes d'enregistrement des tables source sont exclus automatiquement de la table de sortie.

Si un champ Note d'enregistrement dans une table source porte le même nom qu'un champ physique dans une autre table source, un message d'erreur apparaît et la commande APPEND n'est pas exécutée.

Un champ Note d'enregistrement est généré automatiquement par Analytics lorsque vous ajoutez une note à un enregistrement.

Long. de l'enreg.

Si vous incluez tous les champs de toutes les tables source lors de la concaténation, la longueur de l'enregistrement dans la table de sortie peut être plus grande que l'enregistrement le plus long dans les tables source.

Un message d'erreur apparaît si la longueur de l'enregistrement de sortie dépasse la longueur maximale autorisée par Analytics qui est de 32 Ko.

Concaténation et décimales

Un comportement spécifique gère la concaténation des champs numériques incluant des décimales.

Le paramètre Decimal

La commande APPEND utilise le nombre de décimales défini dans le paramètre Dec dans la définition de champ du format de table.

Remarque

Il se peut que le paramètre Dec soit différent du nombre réel de décimales dans les données source. Les décimales dépassant le paramètre Dec ne sont pas définies et sont arrondies dans les calculs.

Paramètres Decimal incohérents

Si les champs numériques concaténés présentent des paramètres Dec incohérents, les champs sont convertis dans le type de données ACL et ils sont harmonisés automatiquement sur le paramètre Dec le plus long.

Les décimales des fichiers de données source dépassant le paramètre Dec le plus long sont exclues de la table de sortie générée par APPEND.

Paramètre Decimal cohérent

Si les champs numériques ajoutés ont un paramètre Dec cohérent, aucune conversion ni harmonisation des types de données n'a lieu.

Les décimales des fichiers de données source dépassant le paramètre Dec sont incluses dans la table de sortie générée par APPEND.

Tri

Les éventuels ordres de tri existants dans les tables source sont conservés séparément dans les jeux d'enregistrements respectifs de la table de sortie.

Même si les enregistrements de toutes les tables source sont triés, la table de sortie obtenue est considérée comme non triée car les enregistrements source sont concaténés en tant que groupe sans tenir compte d'un quelconque ordre de tri existant dans les autres tables source.

Par exemple, si vous ajoutez des tables mensuelles ou trimestrielles pour créer une table annuelle, tout tri interne sur les données mensuelles ou trimestrielles est conservé. Si nécessaire, vous pouvez trier la table de sortie après l'exécution de l'opération de concaténation.

Fonctionnement de l'ordre des champs

Champs communs

Les champs communs des tables source ne doivent pas forcément se trouver dans le même ordre pour être concaténés.

Par exemple, ces champs sont concaténés correctement même s'ils sont dans un ordre différent :

Table Champs
table_1 Nom | Prénom | Deuxième_prénom
table_2 Prénom | Deuxième_prénom | Nom

La première table indiquée dans la commande APPEND détermine l'ordre des champs dans la table de sortie. Par conséquent, dans l'exemple ci-dessous, l'ordre dans la table de sortie est :

  • Nom | Prénom | Deuxième_prénom

Champs non communs

Les champs non communs des tables source s'affichent dans la table de sortie dans leur ordre d'apparition dans le groupe sélectionné des tables source.

Par exemple, lors de la concaténation de ces deux tables :

Table Champs
table_1 Titre | Nom | Prénom | Deuxième_prénom
table_2 Prénom | Deuxième_prénom | Nom | Date_de_naissance

l'ordre dans la table de sortie est :

  • Titre | Nom | Prénom | Deuxième_prénom | Date_de_naissance

Titre de la colonne

Les titres de colonnes des tables source apparaissent dans la table de sortie. Si plusieurs tables source ont un titre de colonne différent pour le même champ, le titre de la première table sélectionnée est prioritaire.