Division de la requête Mysql

J'ai 2 autre requête qui renvoie des valeurs : 1502.00 et 6

SELECT replace(CURRENT_VALUE,'$','') curVal
FROM form_attributes_values
WHERE TEST_ID=2
AND ATTRIBUTE_ID = (
    SELECT ATTRIBUTE_ID
    FROM form_attributes
    WHERE FORM_ID=6
    AND FORM_FIELD_NAME='REGRINDABLECUTTERCOST'
)

et

SELECT replace(CURRENT_VALUE,'$','') curVal
FROM form_attributes_values
WHERE TEST_ID=2
AND ATTRIBUTE_ID = (
    SELECT ATTRIBUTE_ID
    FROM form_attributes
    WHERE FORM_ID=6
    AND FORM_FIELD_NAME='REGRINDSPOSSIBLE'
)

Je suis en train d'effectuer la division de la requête1/query2 (1502.00/6) qui doit renvoyer la valeur 250.333333

mais la valeur que je reçois est quelque chose comme 0.16666666666666

ci-dessous sont les types qui ont essayé donc pour:
Type 1:

select (a.curVal / b.curVal) as final_count
from (
    SELECT replace(CURRENT_VALUE,'$','') curVal
    FROM form_attributes_values
    WHERE TEST_ID=2 AND ATTRIBUTE_ID = (
        SELECT ATTRIBUTE_ID
        FROM form_attributes
        WHERE FORM_ID=6
        AND FORM_FIELD_NAME='REGRINDABLECUTTERCOST'
    )
) a,
(
    SELECT replace(CURRENT_VALUE,'$','') curVal
    FROM form_attributes_values
    WHERE TEST_ID=2
    AND ATTRIBUTE_ID = (
        SELECT ATTRIBUTE_ID
        FROM form_attributes
        WHERE FORM_ID=6
        AND FORM_FIELD_NAME='REGRINDSPOSSIBLE'
    )
) b;

De Type 2:

SELECT replace(CURRENT_VALUE,'$','') / (
    SELECT replace(CURRENT_VALUE,'$','') curVal
    FROM form_attributes_values
    WHERE TEST_ID=2
    AND ATTRIBUTE_ID = (
        SELECT ATTRIBUTE_ID
        FROM form_attributes
        WHERE FORM_ID=6
        AND FORM_FIELD_NAME='REGRINDSPOSSIBLE'
    )
) curVal
FROM form_attributes_values
WHERE TEST_ID=2
AND ATTRIBUTE_ID = (
    SELECT ATTRIBUTE_ID
    FROM form_attributes
    WHERE FORM_ID=6
    AND FORM_FIELD_NAME='REGRINDABLECUTTERCOST'
)

à la fois le type de retour 0.166666666666667 ai-je raté quelque chose?

S'il vous plaît poster exemple de schéma pour form_attributes_values et form_attributes, et juste assez de données pour reproduire votre requête, tel qu'il est. Simuler votre fourni des résultats de sélection ne permet pas de reproduire votre problème, si le problème est très probablement dans votre définition de schéma et/ou de requêtes.
POURQUOI conservez-vous vos valeurs numériques en chaînes de caractères??? Je soupçonne que c'est cause de votre chute. Vous essayez de diviser une chaîne de valeur par le nombre, la valeur de la chaîne est convertie (sans beaucoup de succès) pour le nombre premier
Merci Germann Arlington, vous êtes 100% correct, le problème était dû au champ de Chaîne de la valeur dans la base de données a été comme "de 1 500$.00", d'où la requête a été en mesure de choisir "1" au lieu de "1500.00"

OriginalL'auteur Warrior | 2012-10-10