试图使用MYSQL并转换名为"FinalPrice"的计算列。公式是这样的
([InitialPrice]/(100))*((100)-[PercentageOff]))
我的数据库中的InitialPrice和PercentageOff的数据类型都是DECIMAL(8,2)
问题,我所面临的我似乎不能转换公式内的数据类型。我似乎不知道出了什么问题。我试图获得数据类型为DECIMAL(8,2)
的输出。我试过这个只是为了检查它是否工作,
(CONVERT([int],[InitialPrice]/(100))*((100)-[PercentageOff]))
但是这个公式没有
(CONVERT([DECIMAL(8,2)],[InitialPrice]/(100))*((100)-[PercentageOff]))
我得到的错误消息是"验证列'FinalPrice'的公式出错"。
您最好使用ROUND()
函数,而不是CAST
或CONVERT
:
http://sqlfiddle.com/!9/ff0b8/1
SELECT *,
ROUND( InitialPrice*((100-PercentageOff)/100),2) FinalPrice,
CAST(InitialPrice*((100-PercentageOff)/100) AS DECIMAL(8,2)) FinalPrice1
FROM table1;