Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Plateforme : QLIK SENSE
Nous avons une table creuse contenant 1 million de lignes et une trentaine de colonne.
On voudrait pouvoir modifier le contenu de certaine colonne.
Voici l'équivalent en SQL :
UPDATE TableCreuse
SET ColonneX = 'nouvelle valeur'
WHERE ID = 1
Dans notre cas, on possède un fichier excel avec les colonnes ID et NEW
Comment mettre à jour une colonne de ma table creuse suivant les données présentes dans NEW quand l'ID existe ?
TableCreuse:
ID | Num | Valeur |
---|---|---|
1 | num1 | valeur1 |
2 | num2 | valeur2 |
3 | num3 | valeur3 |
Fichier excel:
ID | Valeur |
---|---|
1 | new_valeur1 |
3 | new_valeur3 |
Résultat Souhaité:
ID | Num | Valeur |
---|---|---|
1 | num1 | new_valeur1 |
2 | num2 | valeur2 |
3 | num3 | new_valeur3 |
On a essayé de faire du mapping et des jointures sans avoir de résultats concluant ou un message d'erreur sur l'engine comme si le serveur saturé vu la quantité de données.
Avez-vous une solution ?
Merci
Nicolas
Bonjour Nicolas,
Voici comment je ferai :
...
Left Join (TableCreuse)
LOAD
ID, // Clé de jointure
Valeur as NewValeur
FROM [FichierExcel.xlsx] (ooxml, embedded labels, table is Feuil1);
RENAME Field Valeur to OldValeur; // Renomer le champ de la table creuse
Left Join (TableCreuse)
LOAD
ID, // Clé de jointure
If(Len(NewValeur) = 0, OldValeur, NewValeur) as Valeur
Resident TableCreuse;
DROP Fields OldValeur, NewValeur;
Bonjour Nicolas,
Voici comment je ferai :
...
Left Join (TableCreuse)
LOAD
ID, // Clé de jointure
Valeur as NewValeur
FROM [FichierExcel.xlsx] (ooxml, embedded labels, table is Feuil1);
RENAME Field Valeur to OldValeur; // Renomer le champ de la table creuse
Left Join (TableCreuse)
LOAD
ID, // Clé de jointure
If(Len(NewValeur) = 0, OldValeur, NewValeur) as Valeur
Resident TableCreuse;
DROP Fields OldValeur, NewValeur;
Merci Sébastien, ça fonctionne