Bonjour,
j'ai le jeu de donnée suivant :
Qui donne donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 drop table #dco, #prise, #pick go CREATE TABLE #prise (interval int NOT NULL) CREATE TABLE #dco (code int NOT NULL, nb int NOT NULL) CREATE TABLE #pick (code int NOT NULL, res int NOT NULL) insert #prise select 1 union select 6 insert #dco select 1, 5 union select 2, 7 insert #pick select 1, -1 union select 2, -1
J'ai fais la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 interval ------------ 1 6 2 Row(s) affected code nb ------ ------ 1 5 2 7 2 Row(s) affected code res ------ ------ 1 -1 2 -1 2 Row(s) affected
Qui me renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select #dco.code, #dco.nb, #prise.interval FROM #dco, #prise, #pick WHERE #pick.code = #dco.code AND #dco.nb > #prise.interval
En fait, j'aimerai obtenir que la valeur max de interval afin de l'utiliser dans l'update de #pick.res et donc faire un update par "intervalle"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 code nb interval ------------ ------------ ------------ 1 5 1 2 7 1 2 7 6
L'update :
Me renvoi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 update #pick set #pick.res = interval FROM #dco, #prise WHERE #pick.code = #dco.code AND #dco.nb > #prise.interval
Au lieu de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 code res ------------ ------------ 1 1 2 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 code res ------------ ------------ 1 1 2 6
C'est possible de faire ça d'un coup d'un seul?
Partager