Update plusieurs enregistrements [Résolu]

cs_mohellebi 102 Messages postés mercredi 31 octobre 2007Date d'inscription 14 février 2018 Dernière intervention - 1 févr. 2014 à 21:20 - Dernière réponse : cs_mohellebi 102 Messages postés mercredi 31 octobre 2007Date d'inscription 14 février 2018 Dernière intervention
- 2 févr. 2014 à 22:28
Bonsoir, tout le monde
Voilà quelques heures que j'essaye de trouver la solution à une requête sql sous sql server 2008 qui consiste à mettre à jour ou bien à modifier plusieurs enregistrement à la fois avec la close where....
voila un exemple de la structure de mes deux tables et l explication dessous


 NOM      BILLET   statut   |   BILLET_num   réglé   
--------------------------- |----------------------- 
dupont    23048514   1      |     23048514    200,00 
dubois    23049012   0      |     23049765    400,00 
martin    23059573   0      |     23067430    520,00 


chose evidente la relation entre les deux tables est billet=>num_billet
maintenant je voudrai changer le statut à "1" de toute la table à condition que le numéro de billet existe dans les deux tables

Merci d'avance pour votre aide qui me permettra d'avancer
Afficher la suite 

9 réponses

Répondre au sujet
jordane45 20647 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 1 févr. 2014 à 21:37
0
Utile
Bonjour,

Un truc du genre :

UPDATE Table1 T1 SET T1.statut=1
WHERE T1.BILLET in (Select T2.BILLET_num From Table2 T2) 
 
Commenter la réponse de jordane45
cs_mohellebi 102 Messages postés mercredi 31 octobre 2007Date d'inscription 14 février 2018 Dernière intervention - Modifié par cs_mohellebi le 1/02/2014 à 23:21
0
Utile
7
en fait j ai essayé avec cette requête qui me semble correcte d'un point de vu logique , mais elle me renvoie l'erreur suivante
voila la requête :
UPDATE table1
SET statut  = 1
WHERE billet= (SELECT billet_num FROM table2 )




et voila l'erreur :
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
merci encore une fois pour les personnes qui pourrons me sortir de cette galère
cs_mohellebi 102 Messages postés mercredi 31 octobre 2007Date d'inscription 14 février 2018 Dernière intervention - 2 févr. 2014 à 10:21
haaa oui il fallait mettre le in , merci beaucoup jordane45 , mais là j'ai encore un petit souci
une nouvelle colonne vient d'être ajouté au deux tables 'dateT1' et 'dateT2' , en revanche dateT1 de la première table ne contient aucune donné, du coup je devrai la remplir avec dateT2 au moment de la mis à jour du statut, c a dire au final je devrai avoir le statut 1 et leurs dates, toujours avec la condition EXISTS
Merci d'avance jordane
jordane45 20647 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 2 févr. 2014 à 11:26
Bonjour,

Ceci est une nouvelle question.... donc, commme le veut la charte du site. il te faut ouvrir une nouvelle discussion.

Pense à mettre celle ci en résolu par contre.
Merci.
cs_mohellebi 102 Messages postés mercredi 31 octobre 2007Date d'inscription 14 février 2018 Dernière intervention - 2 févr. 2014 à 11:54
comme c'était une suite j'avais pensé que je pourrai la poser ici, si non ok je vais ouvrir une nouvelle discussion
Merci jordane pour ton aide
jordane45 20647 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 2 févr. 2014 à 12:15
Tout est toujours une suite de quelque chose.... imagine la taille des discussions si tout le monde pose ses différentes questions à la suite d'une seule conversation...
Ca deviendrait rapidement impossible de s'y retrouver. ^^

Enfin bon, histoire que tu puisses avancer rapidement je vais faire une petite exception.
Je pense que quelque chose du genre devrait marcher :

UPDATE Table1 
  SET T1.statut=1
         ,T1.date1=T2.date2
FROM  table1 T1
INNER JOIN table2 T2 
  ON T1.BILLET=T2.BILLET_num 

cs_mohellebi 102 Messages postés mercredi 31 octobre 2007Date d'inscription 14 février 2018 Dernière intervention - 2 févr. 2014 à 22:28
Bonsoir, jordane

merci infiniment de l'exception qui a permis de résoudre mon problème définitivement
Commenter la réponse de cs_mohellebi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.