IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

MAJ d'un champ d'une table avec condition sur clef primaire commune


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 5
    Points : 6
    Points
    6
    Par défaut MAJ d'un champ d'une table avec condition sur clef primaire commune
    Bonjour,

    le titre n'est pas très explicite, mais voici ce que je souhaite faire : j'ai une première table de commandes avec les champs {id, montant} et une seconde table qui a la même structure (je simplifie).

    Je souhaite mettre à jour la première table avec des valeurs de la seconde, mais en imposant une jointure sur les ID. En d'autres termes, je souhaite mettre à jour les montants de la première table avec ceux de la seconde si les clefs primaires match.

    Pour simplifier la chose, il faudrait que la solution soit du code SQL pur et dur (donc pas de VB ou autre...).

    Merci pour vos réponses/solutions.

    PS : sous Oracle, il semblerait que la solution soit basé sur un MERGE..., mais cette instruction n'existe pas sous Access.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 174
    Points : 178
    Points
    178
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE TABLE1 INNER JOIN TABLE2 ON TABLE1.id = TABLE2.id SET TABLE1.MONTANT = [TABLE2]![MONTANT];

  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    MERGE realise un UPDATE et un INSERT.

    Pour la partie INSERT de MERGE (Enregistrements de TABLE2 qui n'ont pas de correspondance dans TABLE1):
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO TABLE1 (Id, Montant)
    SELECT TABLE2.Id, TABLE2.Montant
    FROM TABLE2 LEFT JOIN TABLE1 On TABLE2.Id = TABLE1.Id
    WHERE TABLE1.Id Is Null
    A+

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Finalement, c'est la saolution d'alcabk qui résoud mon problème.
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Export d'une table avec condition sur une autre
    Par Hobbi1 dans le forum Import/Export
    Réponses: 2
    Dernier message: 25/03/2010, 14h35
  2. champ d'une table avec comme type un fichier xml
    Par gnagnus dans le forum Oracle
    Réponses: 2
    Dernier message: 05/03/2007, 10h16
  3. Ajouter des champ dans une table avec une procedure sp
    Par Abdou1 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/07/2006, 18h32
  4. MAJ d'un champ d'une table access
    Par kheyar dans le forum Access
    Réponses: 6
    Dernier message: 21/05/2006, 20h46
  5. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo