【发布时间】:2012-01-18 11:46:54
【问题描述】:
这是我的查询
SELECT PART_NUM,DESCRIPTION, CONCAT('$',(ON_HAND*PRICE)) AS ON_HAND_VALUE
FROM part WHERE CLASS ='AP'
但是当我尝试查询它时,我的答案总是等于 $0,就像 (ON_HAND*PRICE) 不起作用
这些是值:
微波炉 == 32*$165 气体范围 == 8*495 洗碗机 ==8*595 烘干机 ==12*349.95 垫圈 ==128399.99这一定是结果:
PART_NUM----DESCRIPTION ---------ON_HAND_VALUE CD52 -----------微波炉----$5280 DR93----------- 燃气灶----------- $3960 KT03----------- 洗碗机----------- $4760 KL62----------- 烘干机----------- $41994.4 DW11----------- 垫圈----------- $4799.88【问题讨论】:
-
ON_HAND、PRICE字段的data_type是什么? -
@bpgergo ON_HAND 是 int 而 PRICE 是 varchar
-
老实说我觉得不错;但是我遇到的几个示例使用格式来处理可能的小数情况。 CONCAT('$',FORMAT(ON_hand*price),2)) 幽默:旁注:那是一台昂贵的洗衣机(128399.99 应该是 12*399.99)也许 bpgergo 是在正确的道路上,但一个不是数字。跨度>
-
你不能用 varchar 做数学运算,你必须把它转换成数字。所以像 CONCAT('$',(ON_HAND*cast(PRICE, Decimal(10,2)))