Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
je voudrais comparer tous les champs existant dans deux QVD, sachant que les deux QVD contenants les mêmes champs mais pas toujours les mêmes valeurs.
J'ai essayé avec NOT MATCH mais ça prend beaucoup du temps.
Est-ce que vous avez une autre solution pour comparer les champs entre les QVD et afficher seulement les lignes différentes.
Merci d'avance pour votre aide
Il y a plusieurs façons de comparer les champs entre deux QVD dans QlikSense. L'une des solutions les plus courantes consiste à utiliser la fonction "Concatenate" pour combiner les deux tables en une seule, puis utiliser la fonction "Aggr" pour grouper les données par les champs de comparaison, et enfin utiliser la fonction "Count" pour compter les enregistrements qui ne correspondent pas. Voici un exemple de code qui peut être utilisé pour cela:
// Concatenation des deux tables
Concatenate(LOAD * FROM QVD1.qvd)
LOAD * FROM QVD2.qvd);
// Groupement des données par les champs de comparaison
Temp:
LOAD
Field1,
Field2,
Field3,
// etc.
FROM ConcatenatedTable.qvd
GROUP BY Field1, Field2, Field3;
// Compter les enregistrements qui ne correspondent pas
FinalTable:
LOAD
Field1,
Field2,
Field3,
// etc.
Count(IF(Field1 <> Field1_2 OR Field2 <> Field2_2 OR Field3 <> Field3_2, Field1)) AS CountDifferent
FROM Temp
GROUP BY Field1, Field2, Field3;
Il est important de noter que cette méthode peut être très lente si les tables sont volumineuses. Si c'est le cas, il peut être préférable d'utiliser une
Il y a plusieurs façons de comparer les champs entre deux QVD dans QlikSense. L'une des solutions les plus courantes consiste à utiliser la fonction "Concatenate" pour combiner les deux tables en une seule, puis utiliser la fonction "Aggr" pour grouper les données par les champs de comparaison, et enfin utiliser la fonction "Count" pour compter les enregistrements qui ne correspondent pas. Voici un exemple de code qui peut être utilisé pour cela:
// Concatenation des deux tables
Concatenate(LOAD * FROM QVD1.qvd)
LOAD * FROM QVD2.qvd);
// Groupement des données par les champs de comparaison
Temp:
LOAD
Field1,
Field2,
Field3,
// etc.
FROM ConcatenatedTable.qvd
GROUP BY Field1, Field2, Field3;
// Compter les enregistrements qui ne correspondent pas
FinalTable:
LOAD
Field1,
Field2,
Field3,
// etc.
Count(IF(Field1 <> Field1_2 OR Field2 <> Field2_2 OR Field3 <> Field3_2, Field1)) AS CountDifferent
FROM Temp
GROUP BY Field1, Field2, Field3;
Il est important de noter que cette méthode peut être très lente si les tables sont volumineuses. Si c'est le cas, il peut être préférable d'utiliser une
Les tables sont volumineuses, cette méthode prend beaucoup du temps et de mémoire.
merci pour votre réponse