Concaténation
La concaténation est une opération qui utilise deux tables pour les combiner en une seule.
Les deux tables sont associées par empilement de l'une sur l'autre, avec une colonne représentant chaque nom de colonne distinct. Les données restent inchangées et la table résultante contient le même nombre d'enregistrements que les deux tables d'origine rassemblées. Il est possible d'effectuer plusieurs opérations concatenate successivement pour obtenir une table concaténée à partir de plus de deux tables.
Concaténation automatique
Si le nombre et les noms des champs de plusieurs tables chargées sont exactement identiques, Qlik Sense concaténera automatiquement le contenu des différentes instructions en une seule table.
Le nombre et les noms des champs doivent être parfaitement identiques pour que la concaténation automatique puisse avoir lieu. L'ordre des deux instructions LOAD est arbitraire, mais la table portera le nom de la table chargée en premier lieu.
Procédez comme suit :
- Ouvrez l'éditeur de chargement de données dans l'application Scripting Tutorial.
- Cliquez sur l'onglet Dates.
- Cliquez sur Charger les données.
- Sur la nouvelle ligne dans le section de script Dates, copiez et collez l'instruction LOAD pour Table2. Ceci entraînera les données à être chargées deux fois. Nommez la seconde table Table2a.
- Cliquez sur Charger les données.
- Ouvrez le Visionneur de modèle de données.
- Cliquez sur Afficher l'aperçu.
En fonction du script de chargement écrit jusqu'à présent, Qlik Sense charge 628 lignes du fichier de données Dates.xlsx dans Table2.
Vous pouvez également supprimer le script existant, puis copiez et collez ce qui suit :
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Le script devrait avoir l'aspect suivant :
Qlik Sense ne charge pas Table2 et puis Table2a. À la place, il reconnaît que Table2a a les mêmes noms de champs et le nombre de champs que Table2. Il ajoute ensuite les données de Table2a vers Table2, et supprime la table Table2a. Le résultat est que désormais Table2 a 1 256 lignes.
Seule Table2 a été créée. Sélectionnez Table2. La table a 256 lignes.
Concaténation forcée
Même si plusieurs tables n'ont pas exactement le même ensemble de champs, il est tout de même possible de forcer Qlik Sense à les concaténer. Pour ce faire, utilisez le préfixe Concatenate dans le script afin de concaténer une table avec une autre table nommée ou avec la table créée en dernier lieu.
Procédez comme suit :
- Modifiez l'instruction LOAD pour la table Table2a, en ajoutant Concatenate et en commentant Week.
- Cliquez sur Charger les données.
- Ouvrez le Visionneur de modèle de données.
- Cliquez sur Table2 dans le visionneur de modèle de données, puis cliquez sur Aperçu.
- Cliquez sur Week dans Table2. L'aperçu affiche que le nombre de valeurs non nulles pour le champ est 628. Cependant, si vous cliquez sur n'importe quel autre champ, vous verrez que le nombre de valeurs non nulles est 1 256. Week a été chargée une seule fois, de Table2. Le nombre de valeurs, ou d'enregistrements, est la somme du nombre d'enregistrements des Table2 et Table2a.
Votre script devrait désormais apparaître ainsi :
Table2a:
Concatenate LOAD
"Date",
Month (Date) as "Month",
Quarter,
// "Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
En commentant Week, nous garantissons que les tables ne sont pas identiques.
Vous pouvez constater à présent que la Table2a n'a pas été créée.
La table contient les champs Date, Month, Quarter, Week et Year. Le champ Week est toujours visible, car il a été chargé à partir de la Table2.
Blocage de la concaténation
Si le nombre et les noms des champs de plusieurs tables chargées sont exactement identiques, Qlik Sense concaténera automatiquement le contenu des différentes instructions en une seule table. Ce comportement peut être empêché à l'aide d'une instruction NoConcatenate. La table chargée avec l'instruction LOAD ou SELECT associée ne sera donc pas concaténée avec la table existante.
Procédez comme suit :
- Pour pouvoir complètement séparer le contenu de deux tables, ajoutez NoConcatenate à l'instruction LOAD dans Table2a, et renommez les champs pour que Qlik Sense ne crée pas une clé synthétique en fonction des champs correspondants. Annulez un commentaire Week dans Table2 pour que les deux tables aient les mêmes champs.
- Cliquez sur Charger les données.
- Ouvrez le Visionneur de modèle de données.
- Maintenant que nous avons terminé la démonstration de la concaténation, nous n'avons plus besoin de la Table2a. Supprimez toutes les lignes relatives à l'instruction LOAD pour Table2a, puis cliquez sur Charger les données.
Votre script devrait désormais apparaître ainsi :
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
NoConcatenate LOAD
"Date" as "Date2",
Month (Date) as "Month2",
Quarter as "Quarter2",
"Week" as "Week2",
"Year" as "Year2"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Vous constatez à présent que les deux tables sont entièrement séparées.