Soit la requête suivante:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT FORMAT(L.DATELIVRAISON, 'WW') AS Semaine, P.DESIGNATION, SUM(LV.QTE) AS Quantité, AVG(LV.PRIXALALIVRAISON) AS PU, SUM(LV.QTE * LV.PRIXALALIVRAISON) AS Montant FROM LIGNELIVRAISON LV, PRODUITS P, LIVRAISON L WHERE LV.NUMPRODUIT = P.NUMPRODUIT AND LV.NUMLIVRAISON = L.NUMLIVRAISON AND (L.DATELIVRAISON BETWEEN FORMAT(?, 'dd/MM/yyyy') AND FORMAT(?, 'dd/MM/yyyy')) GROUP BY FORMAT(L.DATELIVRAISON, 'WW'), P.DESIGNATION
Cette requête me donne l'état des ventes par N° Semaine sur une période donnée.
Mon problème: Au lieu d'avoir le N° de la semaine; qu'il me donne (Group By) la date de debut et de fin de cette semaine (actuellement, je vais le group by sur le N° semaine).
Par exemple, si l'utilisateur choisit la période du 01/02/2013 au 28/02/2013, voila l'affichage que j'ai:
Semaine DESIGNATION QUANTITE MONTANT
5 XX 12 25000
5 YY 07 73000
6 XX 28 68200
7 XX 15 30000
7 YY 14 146000
8 XX 06 12500
8 YY 07 73000
8 ZZ 05 75000
9 XX 18 27500
9 YY 21 219000
9 ZZ 10 150000
Et voilà le resultat que je souhaite avoir
Semaine DESIGNATION QUANTITE MONTANT
01/02/2013 - 03/02/2013 XX 12 25000
01/02/2013 - 03/02/2013 YY 07 73000
04/02/2013 - 10/02/2013 XX 28 68200
11/02/2013 - 17/02/2013 XX 15 30000
11/02/2013 - 17/02/2013 YY 14 146000
18/02/2013 - 24/02/2013 XX 06 12500
18/02/2013 - 24/02/2013 YY 07 73000
18/02/2013 - 24/02/2013 ZZ 05 75000
25/02/2013 - 28/02/2013 XX 18 27500
25/02/2013 - 28/02/2013 YY 21 219000
25/02/2013 - 28/02/2013 ZZ 10 150000
Partager