Bonjour à tous !
Je voudrais votre avis sur une requête que j'utilise mais qui me semble un peu compliquée pour le but cherché
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 create table #posbook ( POS_security_id int not null, POS_date datetime not null, POS_book float null, POS_change float null, POS_sec_name varchar(64) null, POS_day int, -- 1 si aujourd'hui, 0 si la veille POS_flag int -- pour la mise en forme BO )
Je remplis une première fois la table avec des données de l'avant veille (POS_day = 0).
Je remplis ensuite avec les données de la veille (POS_day = 1).
Je cherche à mettre POS_flag à 1 quand une position de l'avant veille à une valeur différente la veille et à 0 quand il n'y a aucun mouvement.
je fais donc ça :
ça vous pourrait correct ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 -- on marque toutes les positions qui ont changés entre les 2 dates update #posbook set a.POS_flag = 1 from #posbook a where a.POS_day = 1 and exists (select * from #posbook b where b.POS_day = 0 and a.POS_security_id = b.POS_security_id and a.POS_book <> b.POS_book)
il y a plus simple peut-être ?
Merci![]()
Partager