Commande APPEND
Concept Information
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 :
|
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 Concaténation 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 :
Nom identique, catégorie de données différenteSi 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. |
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é. |
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
Pour plus d'informations sur le fonctionnement de cette commande, consultez Concaténation de tables.
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 |
|
Numérique |
|
DateHeure |
|
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.
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.