这是我的查询
SELECT PART_NUM,DESCRIPTION, CONCAT('$',(ON_HAND*PRICE)) AS ON_HAND_VALUE
FROM part WHERE CLASS ='AP'
但是当我尝试查询它时,我的答案将始终等于 $0,就像 (ON_HAND*PRICE) 不起作用
这些是值:
Microwave Oven == 32*$165 GAS RANGE == 8*495 DISHWASHER ==8*595 DRYER ==12*349.95 WASHER ==128399.99
这一定是结果:
PART_NUM----DESCRIPTION ---------ON_HAND_VALUE CD52 -----------MICROWAVE OVEN----$5280 DR93----------- GAS RANGE----------- $3960 KT03----------- DISHWASHER----------- $4760 KL62----------- DRYER----------- $41994.4 DW11----------- WASHER----------- $4799.88
最佳答案
根据您的评论,这不起作用的原因是 (On_Hand*price) 的结果是错误的(您将数字与字符串相乘)
另一方面,如果 on_hand 是 int
价格是 decimal/double/float
那么你可以使用以下命令得到正确的结果:
CONCAT('$',convert(ON_HAND*PRICE,char))
如果价格是 varchar
我强烈建议将其存储为 decimal
在继续之前。如果您将价格存储为varchar
,您遇到的这个问题只是您将遇到的麻烦的开始。 s。
如果这是不可能的,那么您可以查看 Cast() 函数来首先转换您的 varchar
作为decimal
或float
在执行乘法之前。
编辑:
MySQL 似乎足够聪明,可以将 varchar 本身转换为 float ,但是当 varchar 字段中有“$”符号时,它就无法工作。
所以也许可以尝试执行以下操作:
CONCAT('$',convert(ON_HAND*Right(PRICE,Length(Price)-1),char))
关于MYSQL 查询,关于 CONCAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475060/