--A:
UPDATE item_package b
SET ratio = round((SELECT b.num * a.gold_price
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)/100,4)
--B:
UPDATE item_package b
SET ratio = (SELECT b.num * a.gold_price
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)/100 其中A语句可以执行,B语句不能执行,提示说sql未正常结束,请大家帮忙解释一下, 为什么会这样,其中A和B的区别仅仅是A语句对等号 右边加上了round函数而已。
UPDATE item_package b
SET ratio = round((SELECT b.num * a.gold_price
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)/100,4)
--B:
UPDATE item_package b
SET ratio = (SELECT b.num * a.gold_price
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)/100 其中A语句可以执行,B语句不能执行,提示说sql未正常结束,请大家帮忙解释一下, 为什么会这样,其中A和B的区别仅仅是A语句对等号 右边加上了round函数而已。
SET ratio = (SELECT round(b.num * a.gold_price ,4)
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)/100
SET ratio = ((SELECT b.num * a.gold_price
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)/100 )
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)
你这个得到的是什么类型的数据?
UPDATE item_package b
SET ratio = (SELECT b.num * a.gold_price /100
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)即,将除数写到select中,这样是可以的,只是不知道开始的写法问题在哪?
UPDATE item_package b
SET ratio = round((SELECT b.num * a.gold_price
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)/100,4) ; --加个分号
--B:
UPDATE item_package b
SET ratio = (SELECT b.num * a.gold_price
FROM tbl_gold_item a
WHERE a.gold_item_id = b.gold_item_id)/100