Requête

Résolu
fachiwowo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
fachiwowo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous , je suis débutante en SQL , j'aimerai faire une requête qui me permet d'effectuer ces conditions:
table Personne( nom, prenom, mail, password, Age, Num)

si la personne a moins de 26 ans et fait partie des 5 premiers arrivant, alors ' reduction 30%'
si la personne a moins de 26 ans mais ne fait pas partie des 5 p arrivant, alors ' reduction 10%"
si la personne a plus de 25 ans , bah elle n'aura pas de message

merci de m'aider svp


Configuration: Windows / Chrome 72.0.3626.121

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Il y a pleins de façons de faire....

Déjà.. pour la vérification de l'age.. tu peux utiliser un IF ou un CASE WHEN

Pour ce qui est de la "position"... après avoir appliqué un ORDER BY sur la colonne voulue.. tu peux utiliser un petit bout de code pour connaitre la "ligne" https://www.mysqltutorial.org/mysql-tips/mysql-row_number-emulation/

Ou simplement utiliser la clause LIMIT ; OFFSET et un UNION pour créer tes différents "niveaux"


Au passage :
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/

.


0
fachiwowo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta reponse

J'ai appliqué ceci sur la table Personne( nom, prenom, mail, password, Age, Num)

SELECT *
FROM personne
CASE
WHEN age <26 THEN 'felicitation vous beneficiez de -30%'
ORDER BY personne
LIMIT 5
WHEN age <26 THEN 'felicitation vous beneficiez de -10%'
END
Mais ceci ne marche pas
et aussi quelle condition dois je mettre pour les plus de 25ans qui n'auront pas de message concernant les réductions
merci
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
le case when, dans ton cas, est à mettre dans le SELECT .... pas après le FROM (je voudrais bien savoir d'où tu as pu sortir ça d'ailleurs... ça n'existe pas ! )
0
fachiwowo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
est ce possible que vous corrigez ma requete svp?

bah d'habitude je mets FROM ..... puis WHERE ... et je pensais que ca doit être dans tous les requêtesSQL
( j'ai fait cette condition en php , mon prof veut que ca soit sur SQL et je suis pas forte en requete
merci de m'aider
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > fachiwowo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Je t'ai indiqué où le mettre ....
sur 10 lignes.. ce n'est pourtant pas trop compliqué...

ça devrait donner un truc du genre
SELECT P.* 
          ,IF(P.age <26  AND P.num <6 ,'felicitation vous beneficiez de -30%' ,IF(P.age <26 , 'felicitation vous beneficiez de -10%' , '' )) as REDUC
FROM personne  P


0
fachiwowo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
enfin ca marche marche ,

merci beaucoup .
0