Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
MattMika
Contributor II
Contributor II

COMPARAISON PLUSIEURS CHAMPS

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 

Labels (2)
1 Solution

Accepted Solutions
jcmachado
Contributor III
Contributor III

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

View solution in original post

2 Replies
jcmachado
Contributor III
Contributor III

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

MattMika
Contributor II
Contributor II
Author

Les tables sont volumineuses, cette méthode prend beaucoup du temps et de mémoire.

merci pour votre réponse