Aide sur Update

Aide sur Update - SQL/NoSQL - Programmation

Marsh Posté le 11-01-2010 à 11:32:43    

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.
 

Code :
  1. SELECT    b1.NOM, b1.PRENOM, b1.DEPART, b2.NAME, b2.FSTNAME, b2.flag
  2. FROM      base1 b1, base2@linkbase1base2 b2
  3. WHERE    b1.DEPART < (SELECT SYSDATE FROM DUAL)
  4. AND       b1.CODE = SUBSTR(b2.EXTCODE,1,5)
  5. AND       To_Char(b1.CODEAGT) = SUBSTR(b2.EXTCODE,7,5)


-> Cette requête me donne les personnes qui doivent avoir leurs flag à jour.
Merci de votre aide.

Reply

Marsh Posté le 11-01-2010 à 11:32:43   

Reply

Marsh 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
Reply

Marsh Posté le 11-01-2010 à 14:11:14    

Merci pour ton aide :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed