Update table SQL

Résolu
Katerina85_55 Messages postés 25 Statut Membre -  
Katerina85_55 Messages postés 25 Statut Membre -
Bonjour,

J'aimerais utiliser une fonction UPDATE dans ma requête et je n'arrive pas à composer un bon code :-(
J'ai deux tables: une (data0189) définit le code TVA (4 lignes en total), l'autre (data0012) liste tous les clients

data0189                 
RKEY STATE_TAX
1 TVA_A
2 TVA_B
3 TVA_C
4 TVA_D

data0012
RKEY CLIENT
1 Snikers
2 Mars
3 Twix

Je lie ces deux tables par la jointure:
INNER JOIN
DATA0012
ON DATA0189.RKEY=DATA0012.SHIP_CTAX_PTR 

ce qui me donne
RKEY (data0012)  CLIENT  RKEY(data0189) STATE_TAX
1 Snikers 3 TVA_C
2 Mars 4 TVA_D
3 Twix 1 TVA_A

J'aimerais appliquer TVA_A à tous les clients via une fonctions UPDATE. Qqun a une idée svp? J'utilise Microsoft SQL Server Management Studio

Merci d'avance!

1 réponse

  1. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
     
    Bonjour,

    En gros vous voulez que tous vos client ai la même TVA?
    Begin trans 
    Update *Nom de la table Client* set *Nom de la colonne TVA* = 1

    //Commit en Cas de réussite
    //Rollback en cas d'échec


    Dites moi si c'est bien ce que vous voulez ( je vous aurez bien aidé avec les tables exact... mais vu leur nom et le nom des colonnes... je m'y risque pas...

    Cdlt
    0
    1. Katerina85_55 Messages postés 25 Statut Membre
       
      Bonjour diablo13800 !

      Quelle rapidité! :-)

      Dans ce cas j'aimerais que tous mes clients ont le même TVA, mais ne réalité je vais choisir quel client doit avoir quel TVA (ça représente un peu près 50/50 de TVA différent)
      0
    2. Katerina85_55 Messages postés 25 Statut Membre
       
      Pour être plus précis, j'ai un ERP qui contient la fiche Client (table 1: data0012). cette fiche client contient plusieurs onglets à remplir. Chaque onglet représente une table différente (laquelle je lie avec une table 1 pour obtenir un résultat complet sur le client). C'est le cas avec TVA (table 2: data0189).
      0
    3. Katerina85_55 Messages postés 25 Statut Membre
       
      En gros, j'essaie d'utiliser qqch comme ça pour dire que le client 1 doit avoir TVA_A, mais cela ne fonctionne pas, Microsoft me donne une erreur "Incorrect syntax near the keyword INNER"

      UPDATE DATA0189
      INNER JOIN DATA0012 ON DATA0189.RKEY=DATA0012.SHIP_CTAX_PTR
      WHERE DATA0012.RKEY=1
      0
    4. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
       
      Bonjour,

      Concernant l'erreur c'est logique... Déja vous avez pas forcément besoin du Inner Join ( Vous modifier qu'une table après tout...
      Et vous ne précisez pas la valeur a donné...

      Where donne une condition vous vous voulez définir une valeur

      ce serait plutot comme ceci
      UPDATE DATA0189
      SET Key_Tax=1
      WHERE DATA0012.RKEY=1

      Dans le Where mettez les identifiants des personnes dont vous voulez changer la taxe
      UPDATE DATA0189
      SET Key_Tax=1
      WHERE DATA0012.RKEY in (1,2,5,4,7,8,9)

      La il fera un update sur 7 Client ( défini par leur RKEY)
      0
    5. Katerina85_55 Messages postés 25 Statut Membre
       
      Je viens de tester votre propposition:
      UPDATE DATA0189
      SET Key_Tax=1
      WHERE DATA0012.RKEY=1

      Cela ne fonctionne pas :-(
      Erreur "The multi-part identifier "DATA0012.RKEY" could not be bound."
      0