2017-04-24 5 views
0
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 
| id | user_email    | cat_id | sub_cat_id | score | out_of | score_in_per | date  | groupId | groupType | 
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 
| 13 | [email protected] | 9  | 11   | 40 | 40  | 100   | 22-04-2017 | 34  | institute | 
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 
| 14 | [email protected] | 9  | 11   | 37 | 40  | 92.5   | 22-04-2017 | 34  | institute | 
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 
| 15 | [email protected] | 9  | 11   | 35 | 54  | 90.35  | 22-04-2017 | 34  | institute | 
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 
| 17 | [email protected] | 9  | 11   | 75 | 41  | 91.52  | 22-04-2017 | 34  | institute | 
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 
| 20 | [email protected] | 9  | 11   | 47 | 56  | 85   | 22-04-2017 | 34  | institute | 
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 
| 35 | [email protected] | 9  | 11   | 14 | 89  | 20.45  | 22-04-2017 | 34  | institute | 
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 
| 37 | [email protected] | 9  | 11   | 69 | 78  | 45.45  | 22-04-2017 | 34  | institute | 
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+ 

du tableau ci-dessus que je veux obtenir la valeur maximum score_in_per comme une sous requête mais en raison décimal il ne fonctionne pas par desc ou max(score_in_per) alors comment peut ni obtenir le maximum score_in_percomment obtenir la valeur max de colonne de la table msyql à l'aide sous-requête lorsque les valeurs sont décimales décimales et non

ce que j'ai essayé, mais la valeur maximale ne vient pas ..

(SELECT MAX(score_in_per) 
FROM tbl_student_skill_score WHERE cat_id=9 
and sub_cat_id=11 
ORDER BY score_in_per DESC) as maxPortaScore 
+0

On dirait que le problème est avec 'ORDER BY score_in_per DESC', pas' MAX'. Qu'est-ce que vous obtenez pour le MAX? Ou peut-être que le problème est avec la requête externe ?? S'il vous plaît montrer cela aussi. –

Répondre

1
SELECT 
max(cast(score_in_per as decimal(5,2))) 
FROM tbl_student_skill_score WHERE cat_id=9 
and sub_cat_id=11 

Essayez le code ci-dessus. J'espère que cela vous aidera.

+0

il y a une erreur dans la syntaxe. près de 'max' –

+0

@AbdulWaheed essayer mis à jour un .. –

+0

thankx cela fonctionne .. pouvez-vous s'il vous plaît expliquer ce qui est moulé et comment décimal (5,2) fonctionne ..? –

1

Il y a deux approches ici. Si vous souhaitez utiliser la fonction MAX(), vous n'avez pas besoin de ORDER BY. Par conséquent, ce qui suit devrait fonctionner:

SELECT MAX(CAST(score_in_per AS DECIMAL(10,2))) AS maxPortaScore 
FROM tbl_student_skill_score 
WHERE cat_id = 9 AND sub_cat_id = 11 

L'autre approche serait d'utiliser ORDER BY sur la colonne de partition, puis restreindre le jeu de résultats à seul le premier enregistrement, soit le score maximum:

SELECT CAST(score_in_per AS DECIMAL(10,2)) 
FROM tbl_student_skill_score 
WHERE cat_id = 9 AND sub_cat_id = 11 
ORDER BY CAST(score_in_per AS DECIMAL(10,2)) DESC 
LIMIT 1 

J'ai mis à jour ce qui précède par la réponse acceptée qui implique que score_in_per est stocké en tant que texte.

+0

les deux requêtes ci-dessus ne fonctionnent pas quand il y a '100' max record est là. il montre toujours «enregistrement 92,5». –