Bonjour à tous, j'aimerais modifier les champs d'une table, j'ai des personnes dans une table base2 et ils ont tous un flag à 1. J'aimerais mettre à jour ce flag par rapport à la base1 qui elle est à jour. En gros si la date de depart de l'agent et inférieure à la date du jour on passe le flag dans la base2 à 0.
Je sais faire tout ça séparément mais avec l'update je m'y perd.
-> Cette requête me donne les personnes qui doivent avoir leurs flag à jour.
Merci de votre aide.
Publicité
Posté le 11-01-2010 à 11:32:43
olivthill
Posté le 11-01-2010 à 13:31:52
Sous Oracle, MySQL, SQLServer, Access ? Je vais supposer que c'est Oracle.
Quel est la clé primaire de la table base1 ? Je vais supposer que c'est le champ NOM
Essayer
UPDATE base1
SET flag = 1
WHERE NOM in
(SELECT b1.NOM
FROM base1 b1, base2@linkbase1base2 b2
WHERE b1.DEPART < (SELECT SYSDATE FROM DUAL)
AND b1.CODE = SUBSTR(b2.EXTCODE,1,5)
AND To_Char(b1.CODEAGT) = SUBSTR(b2.EXTCODE,7,5))
Message édité par olivthill le 11-01-2010 à 13:32:33