2009-06-30 8 views
0

Il existe trois colonnes de coût, participant, single_cost et veut écrire en SQL pour classer la valeur qui a divisé le coût par participant en single_cost. Je travaille pour le laisser quand la fraction décimale est apparue, et je peux entrer, mais je le dis, et le fait de savoir qu'une méthode enseigne une valeur à cette occasion? Chaque colonne est de type int. Vous remerciant à l'avance.Nombre de fonctions de mise en forme en SQL

ex Au moment du coût = 15000, participant = 7, je deviens single_cost = 2,142.8, mais moi-même registre avec une base de données pour 2143.

+0

vous voudrez peut-être envisager de reformuler la question. – akf

+0

Quelle base de données utilisez-vous? –

Répondre

1

Si je comprends bien, vous voulez la valeur en virgule flottante d'être tenu dans votre base de données. Pour que cela se produise, vous devez lancer votre résultat de division de façon à ce qu'il soit flottant de la manière suivante: CAST(X/Y AS FLOAT), où X et Y et vos noms de champs.

Veuillez noter que le type de données de single_cost doit également être FLOAT. Selon la base de données dont vous disposez, vous pouvez multiplier le numérateur ou le dénominateur par "1,0".

Par exemple:

UPDATE Table 
SET single_cost = (1.0 * cost)/participant 

La solution précédente serait:

UPDATE Table 
SET single_cost = CAST(cost AS FLOAT)/participant 

espoir qui aide.

0

Vous pouvez faire quelque chose comme ça (en supposant t-sql)

select single_cost = round(cast(cost as float)/cast(participant as float),0)