Additionner 2 champs de 2 tables

Résolu
Adiren Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
Adiren Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai un problème, j'ai 2 tables différentes, l'une avec une colonne contenant des points de fidélité et l'autre avec une colonne contenant d'autres points et je voudrais le additionner et les stocker dans la première table à la place des premiers. Et je ne peux pas modifier la structure des tables. Bien évidemment, je veux faire ça dans tous les tuples et les 2 tables se relié par une key.

Pouvez-vous m'aider ?

Configuration: Windows / Chrome 73.0.3683.103

2 réponses

  1. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982
     
    Bonjour,

    Avec Oracle je ferais :

    update tabl1 set cpt1 = cpt1 + (select cpt2 from tabl2 where id1=id2);

    Ce devrait être voisin avec sqlserver

    Cdlt
    0
    1. Adiren Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   2
       
      Je viens d'essayer et j'ai un peu près la même chose avant mais ça marche pas, ça se génère une erreur au niveau de cpt2 :/
      0
    2. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982 > Adiren Messages postés 40 Date d'inscription   Statut Membre Dernière intervention  
       
      tu as bien sur remplacé les noms de ma requete qui étaient tous des exemples ?

      affiche ici ta requete et le message d'erreur exact
      0
    3. Adiren Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   2
       
      update client
      set client.fidelite = Client.fidelite + (select fidelite_acquise from calcul_client
                                                              where client.code = calcul_client.code_client)
      where client.code in (select code_client from calcul_client where nb_passage >=3)
      

      0
    4. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982 > Adiren Messages postés 40 Date d'inscription   Statut Membre Dernière intervention  
       
      J'aurais un doute sur 2 sous select sur la même table dans une commande, après je n'ai jamais fait de sql avec SqlServer

      et ?

      update client
      set client.fidelite = Client.fidelite + (select fidelite_acquise from calcul_client
         where client.code = calcul_client.code_client 
         and nb_passage >=3) 
      0
    5. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Bonjour,

      Sous SQL Server ce serait plutôt quelque chose comme ceci :
      UPDATE c
      SET fidelite = c.fidelite + cc.fidelite_acquise
      FROM client c
      INNER JOIN calcul_client cc ON cc.code_client = c.code
      WHERE cc.nb_passage >= 3


      Xavier
      0
  2. Adiren Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   2
     
    Merci les gars, ma requête fonctionne !!
    0