Bonjour tout le monde,
Voici mon soucis :
J'ai une table dans laquelle sont stockées des ventes mensuelles :
Je dois écrire une requête qui afficherait les tendances de vente.
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
26
27 mnth qty 2007-12-01 100 2008-01-01 110 2008-02-01 120 2008-03-01 130 2008-04-01 140 2008-05-01 140 2008-06-01 130 2008-07-01 120 2008-08-01 110 2008-09-01 100 2008-10-01 110 2008-11-01 100 2008-12-01 120 2009-01-01 130 2009-02-01 140 2009-03-01 100 2009-04-01 100 2009-05-01 100 2009-06-01 110 2009-07-01 120 2009-08-01 110 2009-09-01 120 2009-10-01 130 2009-11-01 140 2009-12-01 100
Si j'écris les résultats voulus celà doit me donner une table de ce genre :
DATE DEBUT DATE FIN TENDANCE
2007-12-01 2007-12-01 Unknown
2008-01-01 2008-04-01 UP
2008-05-01 2008-05-01 SAME
2008-06-01 2008-09-01 DOWN
.....
.....
J'ai fait la requête suivante :
Elle me renvoit bien les tendances mois par mois. Mais le soucis c'est que je ne dois afficher qu'une ligne par tendance. c est à dire que si la tendance UP se déroule du moi de Janvier au mois de Mars, je ne dois pas afficher le mois de janvier, fevrier, mars mais une ligne dont le départ serait le mois de janvier et la fin le mois de mai.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT a.mnth as 'StartDate', dateadd(m,+1,a.mnth) as 'EndDate', CASE WHEN( (select c.qty from mehdi.Sales c where c.mnth = a.mnth) > (SELECT d.qty from Mehdi.Sales d WHERE d.mnth = dateadd(m,-1,a.mnth))) THEN 'UP' WHEN( (select c.qty from mehdi.Sales c where c.mnth = a.mnth) < (SELECT d.qty from Mehdi.Sales d WHERE d.mnth = dateadd(m,-1,a.mnth))) THEN 'DOWN' WHEN( (select c.qty from mehdi.Sales c where c.mnth = a.mnth) = (SELECT d.qty from Mehdi.Sales d WHERE d.mnth = dateadd(m,-1,a.mnth))) THEN 'SAME' END as 'tendance' FROM mehdi.sales a
Tant que la tendance reste la même on affiche pas le mois correspondant
J'espere avoir été clair
Merci d avance de votre aide
Partager