Bonjour, tout nouveau ici je me permets de demander de l'aide sur ce forum, étant tout nouveau dans le langage SQL.
Pour vous expliquer mon problème, voici la situation : je possède une base de données contenant une colonne cp_multiplier. Les valeurs contenues dans cette colonne correspondent à un niveau précis d'un Pokémon (les correspondances sont disponibles ici : https://pokemongo.gamepress.gg/cp-multiplier), mais les niveaux ne sont pas directement inscrits dans la base de données.
Je possède déjà une requête SQL presque complète que voici :
Cependant, je ne suis pas encore satisfait puisqu'au lieu d'afficher une colonne cp_multiplier j'aimerai afficher le niveau correspondant, mais sans devoir modifier la base de données, donc lors de l'exécution d'une requête SQL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT gp.trainer_name AS Dresseur_nom, gp.pokemon_id AS Pokémon_ID, gp.cp AS Pokémon_CP, gp.num_upgrades AS Pokémon_upgrades, TRUNCATE(gp.num_upgrades / 2,1) AS Level_upgrades, gp.iv_defense AS Pokémon_DEF, gp.iv_attack AS Pokémon_ATK, gp.iv_stamina AS Pokémon_STA, gp.cp_multiplier AS Pokémon_CPMultiplier, gp.additional_cp_multiplier AS Pokémon_ADDCPMultiplier, gp.stamina AS Pokémon_HP, gp.stamina_max AS Pokémon_HPMAX, gd.name AS Arène_nom, g.team_id AS Arène_team, g.gym_points AS Arène_points, g.latitude AS Arène_latitude, g.longitude AS Arène_longitude, g.last_modified AS Date_Modification, g.last_scanned AS Date_Scan FROM gympokemon AS gp INNER JOIN gymmember AS gm ON gp.pokemon_uid = gm.pokemon_uid INNER JOIN gymdetails AS gd ON gm.gym_id = gd.gym_id INNER JOIN gym AS g ON gd.gym_id = g.gym_id WHERE gp.trainer_name = 'XXX' OR gp.trainer_name = 'XXX' ORDER BY gp.trainer_name ASC, gp.cp DESC;
J'ai cherché un moyen de faire cela, mais je ne sais pas exactement comment m'y prendre. J'ai commencé par introduire des conditions
mais je ne suis pas sûr d'aller dans la bonne direction, en plus de ça il semble que je n'ai pas défini la variable 'Level' si jamais l'utilisation des conditions est la solution (si jamais elle existe).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 IF gympokemon.cp_multiplier = 0.7317 THEN SET Level = '30' ELSEIF gympokemon.cp_multiplier = 0.71939909 THEN SET Level = '29' END IF;
Voilà, j'espère avoir été clair dans mon post, et si besoin d'informations, n'hésitez pas à me les demander.
Cordialement.
Partager