j'ai une table dont je veux doubler certaines données en modifiant seulement un champ
EX :
j'ai ma structure de Table1 avec Champ1, champ2 et champ3
je veux que pour tous les champ1 = valeur1 et champ3='1'
soit créer le même enegistrement avec les mêmes données pour champ1 et pour champ2, mais champ3='0' !
j'ai pensé à :
cnx.execute "insert into table1 ... select ..."
mais comment changer automatiquement la valeur de champ3 ?
si je ne le fais pas en une seule étape je ne pourrais plus différencier la copie de l'original ensuite
des idées ?
Publicité
Posté le 04-04-2001 à 15:26:04
wouatouwouatou
Posté le 04-04-2001 à 15:30:23
t'as essaye de faire ton select avec une valeur fixe a la place de ton champ3 ?
du style: insert into table1 (c1,c2,c3) select c1,c2,'0' from table1 where c1=...
thegti
La constipation se soigne ...
Posté le 04-04-2001 à 15:32:36
Si j'ai bien compris le truc:
insert into Table1 (champ1,champ2,champ3) select T.champ1,T.champ2,'0'
from Table1 T
where T.champ1=valeur1 and T.champ3='1';
Hepil
Posté le 04-04-2001 à 15:33:34
logiquement, après le select, c'est le nom d'un champ qu'il faut et pas son contenu !
mais je vais essayé quand même @ de suite
thegti
La constipation se soigne ...
Posté le 04-04-2001 à 15:33:37
Putain grillé de 2 minutes
thegti
La constipation se soigne ...
Posté le 04-04-2001 à 15:35:20
Non après un select tu mets ce que tu veut
Fred999
Rabat-joie
Posté le 04-04-2001 à 15:36:17
Hepil a écrit a écrit :
logiquement, après le select, c'est le nom d'un champ qu'il faut et pas son contenu !
mais je vais essayé quand même @ de suite
Ca dépend... En T-SQL, tu n'as pas besoin de mettre les noms de champs.
Ceci dit, ça rend les procédures plus lisibles, Si tu peux te le permettre, c'est pas plus mal.
Hepil
Posté le 04-04-2001 à 15:37:01
j'utilise VB6 et SQL Serveur 7
Hepil
Posté le 04-04-2001 à 15:45:21
bavo les bêtes, voilà ce que j'ai fais :
insert into répartition (numsous,compagnie,actuel)
select numsous,compagnie,'0' FROM répartition
WHERE numsous = '100104' and actuel = '1'