Bonjour,
j'ai une table qui ressemble a ca :
je voudrais en retenir :code - qte - date
100 6864 2008-01-20
100 16569 2008-01-25
100 17087 2008-01-23
100 8627 2008-01-22
100 6768 2008-01-21
100 16933 2008-01-24
110 345.34 2008-01-21
110 365.14 2008-01-20
120 260.8 2008-01-22
120 278.8 2008-01-20
130 417.25 2008-01-22
130 517.25 2008-01-23
130 469.25 2008-01-24
130 432.25 2008-01-20
...
c'est à dire obtenir pour une date maximale (23-01-2008) la qte pour chaque code.100 17087 2008-01-23
110 345.34 2008-01-21
120 260.8 2008-01-22
130 517.25 2008-01-23
...
j'ai essayé ca :
ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT code, qte, MAX( date ) FROM matable WHERE (date <= '2008-01-23') GROUP BY code ORDER BY code donne : 100 6864 2008-01-23 110 365.14 2008-01-21 120 278.8 2008-01-22 130 432.25 2008-01-23 ...
ou :
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 SELECT code, qte, MAX(date) FROM matable WHERE (date<='2008-01-23') GROUP BY code, qte, date HAVING date = max(date) order by code donne : 100 6768 2008-01-21 100 6864 2008-01-20 100 8627 2008-01-22 100 17087 2008-01-23 110 345.34 2008-01-21 110 365.14 2008-01-20 120 260.8 2008-01-22 120 278.8 2008-01-20 130 417.25 2008-01-22 130 432.25 2008-01-20 130 517.25 2008-01-23 ...
j'ai essayé dans tous les sens, mais je n'obtiens pas la bonne solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT code, qte, date FROM matable WHERE (date = ( SELECT MAX( date ) FROM matable WHERE (date <= '2008-01-23') ) ) ORDER BY code; donne : 100 17087 2008-01-23 130 517.25 2008-01-23 ...
Qqn a une idée?
Merci
Partager