Je suis un peu rouillé en SQL alors je viens chercher un peu d'aide.
SGBD = Oracle 10
(je n'ai pas mis de create table vu que j'ai schématisé le code)
Voilà le code simplifié de départ :
Code : Tout sélectionner
update table1 a set a.champ1=
(select a.champ2*count(*) from table2 b where
contraintes);
commit;Mais suite à une modification, ce code doit être valable seulement pour mes données avant 2008. A partir de 2008, il faut donc que je précise une condition :
- pour date<=2007 alors script normal
- pour date >= 2008 alors script modifié
J'ai donc fait ceci :
Code : Tout sélectionner
update table1 a set a.champ1=
(select a.champ2*count(*) from table2 b where
contraintes and b.date<=2007);
commit;
update table1 a set a.champ1=
(select a.champ2*count(*) from table2 b where
contraintes and b.date>=2008 and b.type<>'Nouveau');
commit;Comment puis-je faire en sorte de faire la mise à jour pour l'ensemble de mes données (toutes les dates) avec les 2 traitements spécifiques ? Je pense qu'il faut mettre en place une contrainte mais je ne vois pas vraiment comment ?
Toute aide sera la bienvenue Merci d'avance !