Bonjour,
Je suis sous postgres (pgAdmin4), je dois cleaner des données, j'ai repris le codage SQL il y a peu....
Je veux mettre à jour les observateurs d'une tables (Tmj) en fonction d'une table de correspondance (Tc).
Tmj = 400 lignes comporte le champs "_obs" (80 occurrences différentes) et les champs observateurs ;
Tc = 80 lignes comporte le champs "obs" (pour jointure) et les codes à assigner aux champs observateur_1, 2, etc.
Voici une de mes nombreuses tentatives :
ou ça aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UPDATE fwd.Tmj SET observateur_1 = Tc.observateur_1, observateur_2 = Tc.observateur_2, observateur_3 = Tc.observateur_3, observateur_4 = Tc.observateur_4 FROM fwd.Tc WHERE fwd.Tc.obs=fwd.Tmj._obs
avec la table d'origine (TmjOrigine) en plus comportant tous les identifiants de ligne (2e jointure)
Ces requêtes ne traitent que partiellement la table. Des champs reste vident.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 UPDATE fwd.Tmj SET ( observateur_1, observateur_2, observateur_3, observateur_4 ) = (SELECT observateur_1, observateur_2, observateur_3, observateur_4 FROM fwd.Tc INNER JOIN fwd.TmjOrigine USING (obs) WHERE Tmj.idorigine = TmjOrigine.keyuuid );
Je comprends les problèmes de ces requêtes mais là je tourne en rond depuis hier.
Comment l'appliquer à toutes les lignes ?
J'ai pensé aux boucles mais je ne sais pas vraiment comment les intégrer dans PgAdmin ni gérer le curseur...
bref, j'ai besoin d'aide.
Je vous remercie d'avance,
Partager