Bonjour,
Je bloque depuis deux jours sur une requête sql dans mon code WinDev.
J'ai trois fichiers de données.
Un fais le lien entre les deux autre : BDD_MAIN
Le second est celui où je vais chercher la valeur à copier : BDD_SEC
Le troisième est celui où je vais copier les valeurs trouvées : BDD_TROIS
BDD_MAIN
ID_TR : Unique
NOM_CLI : Unique
...
BDD_SEC
NOM_CLI : Pas unique
NUM_COM : Pas unique
...
BDD_TROIS
ID_TR : Pas Unique
NOM_CLI : Pas unique
NUM_COM : Pas unique
ID_DET : Unique
...
La combinaison de NOM_CLI et de NUM_COM est unique.
Exemple : Si NOM_CLI = toto et NUM_COM = 12 alors on ne peut pas trouver d'autre enregistrement
égale égale à NOM_CLI = toto et NUM_COM = 12 mais si NOM_CLI = titi et NUM_COM = 12 c'est possible et
vice versa.
Dans BDD_TROIS je n'ai pas toutes les valeurs de BDD_SEC.
Je veux cependant mettre à jour les enregistrement dont BDD_SEC.NOM_CLI = BDD_TROIS.NOM_CLI
et BDD_SEC.NUM_COM = BDD_TROIS.NUM_COM
J'ai fais une requête, la trace m'indique :
UPDATE BDD_TROIS SET NUM_COM WHERE ID_TR=1234 AND NUM_COM=12
Mais quand je vais dans BDD_TROIS, la valeur ne s'est pas mise à jour ...
Voici ma requête :
Merci pour votre aide.
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 sqL="SELECT BDD_SEC.ID_DET, BDD_SEC.NOM_CLI, "+... "BDD_SEC.NUM_COM "+..." "FROM BDD_MAIN, BDD_SEC, BDD_TROIS "+... "WHERE RD_MAIN.NOM_CLI = BDD_SEC.NOM_CLI "+... "AND BDD_MAIN.ID_TR=BDD_TROIS.ID_TR "+... "AND BDD_TROIS.NUM_COM = BDD_DEUX.NUM_COM" HExécuteRequêteSQL(Rq,hRequêteDéfaut,sqL) HLitPremier(Rq) TANTQUE PAS HEnDehors(Rq) sqll="update BDD_TROIS set NUM_COM="+Rq.NUM_COM+" +... " where ID_DET="+Rq.ID_DET+" and NUM_COM='"+Rq.NUM_COM+"' " Trace(sqll) HExécuteRequêteSQL(RqQ,hRequêteDéfaut,sqll) HLitSuivant(Rq) FIN HLibèreRequête(Rq)
Partager