Requête

Résolu
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

  1. Modérateur
    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/

    .

    1. 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
    2. Modérateur
      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 ! )
    3. 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
    4. Modérateur
      @fachiwowoJe 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
      
      
      
    5. enfin ca marche marche ,

      merci beaucoup .