Petite requete selon plage de données

Petite requete selon plage de données - SQL/NoSQL - Programmation

Marsh Posté le 26-04-2011 à 16:44:20    

Hello,
Je bloque sur un truc tout con :
 
J'ai une petite table comme suit :
 

ID    jours    remise
1      7          10
2      10         15
3       15        25


 
Je souhaite faire un truc de remise sur le prix d'une location.
Exemple, si le client réserve une chambre pour 5 jours, aucune remise est appliquée.
Si le client réserve 8 jours, c'est une remise de 10% (car plus de 7 jours, mais moins de 10 jours)
Et ainsi de suite...
 
Le problème : quelle requête faire dans MySQL pour avoir directement la ligne directe concernée ?
Par exemple, si le client réserve 9 jours, je voudrais que ça me ressorte la ligne de 7 jours..
 
J'ai testé plusieurs trucs, donc un en PHP avec un parse de toute la table mais je trouve ça pas très clean quoi. :/
Quelqu'un a une idée :??:
 
Merci :hello: !
 

Reply

Marsh Posté le 26-04-2011 à 16:44:20   

Reply

Marsh Posté le 26-04-2011 à 16:49:00    

J'ai fait un truc comme ça :
 

SELECT MAX(jours),MAX(remise) FROM table WHERE jours < $nbJours


 
Ya plus propre et plus correct :??:

Reply

Marsh Posté le 27-04-2011 à 07:23:32    

En SQL Server ca donnerai ca:

Code :
  1. SELECT top 1 * FROM TABLE WHERE jours < $nbJours ORDER BY jours DESC


Me semble qu'avec MySQL c'est limit 1 ou un truc comme ca, enfin tu vois l'idée :)

Reply

Marsh Posté le 27-04-2011 à 09:56:09    

Je confirme :  
select * from table where jours < $nbJours order by jours desc LIMIT 1
 
ps : remplacer le * par le nom des champs, c'est mieux ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed