Bonjour,
J'ai une table "catalogue" de produits défini comme ceci :
Elle contient les informations suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Code catalogue code produit date_debut date_fin prix
Je cherche à faire une requête me donnant le tarif à appliquer
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 Code catalogue = 1 code produit = 1235 date_debut = 2009-01-01 date_fin = 2009-01-12 prix = 78 Code catalogue = 2 code produit = 1235 date_debut = '2009-07-30' date_fin = '2009-08-15' prix = 38 Code catalogue = 1 code produit = 3526 date_debut = '2009-05-01' date_fin = '2009-12-31' prix = 45
Le résultat devant me donner les informations suivantes :
Voici ma requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Code catalogue = 2 code produit = 1235 date_debut = '2009-07-30' date_fin = '2009-08-15' prix = 38 Code catalogue = 1 code produit = 3526 date_debut = '2009-05-01' date_fin = '2009-12-31' prix = 45
J'ai 2 code produits identiques et je n'en veux qu'un, c'est a dire que celui dont les dates de début et fin sont les plus proche de la date du jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT produit, prix FROM catalogue WHERE ( '2009-07-31' BETWEEN date_debut AND date_fin OR '2009-07-31' >= date_debut AND date_fin = '0000-00-00' )
J'ai fait un "group by" sur le produit et dans ce cas le prix est à 78.
J'ai fait des tris sur les date ASC et DESC, mais le pris reste à 78 pour le produit 1235, alors que c'est 68 quie je voudrais avoir.
Comment dois-je exprimer ma requête pour cibler au mieux les dates de début et de fin
Merci d'avance
Partager