Bonjour 8)

Je travaille avec sql server 2000.

J'ai une table contenant des enregistrements, chaque ligne définissant une semaine et une année précise. Je vous montre un exemple de données :

prix semaine annee
--------------------- ------- -----
5.0000 17 2001
5.0000 18 2001
5.0000 19 2001
5.1500 20 2001
5.1500 21 2001
5.1500 22 2001
5.1500 23 2001
5.1500 24 2001
5.1500 25 2001
5.1500 26 2001
5.1500 27 2001
5.0000 28 2001
5.0000 29 2001
5.0000 30 2001
Voici ce que je voudrais comme résultat dans une autre table :

prix --- semaine debut --- semaine fin --- annee debut --- annee fin
5.00 --- 17 --- 19 --- 2001 --- 2001
5.15 --- 20 --- 27 --- 2001 --- 2001
5.00 --- 28 --- 30 --- 2001 --- 2001
Je n'y arrive pas! La requête que j'ai présentement utilise les min et les max des numéros de semaines par prix...


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
drop table ListePRixCometFinale
select listeprix, codeitem, prix, devise, b.datedebut, c.datefin
into ListePrixCometFinale
from
(
select listeprix, codeitem, prix, devise, annee, min(semaine) as minsem, max(semaine) as maxsem
from listeprixcometsem 
group by listeprix, codeitem, prix, devise, annee
) a 
join jassdate b on (a.minsem = b.semaine and a.annee = b.annee)
join jassdate c on (a.maxsem = c.semaine and a.annee = c.annee)
order by 1,2,5
Mais dans le cas présent, ça me retourne :

prix --- semaine debut --- semaine fin --- annee debut --- annee fin
5.00 --- 17 --- 30 --- 2001 --- 2001
5.15 --- 20 --- 27 --- 2001 --- 2001
Le prix a 5$ est erroné, puisque de la semaine 20 à 27 ce n'est pas à ce prix là du tout!

Merci de ne donner votre avis ce sera apprécié. Je me demande bien comment je pourrais la faire celle là! :