初始状态
订单表:price=0,cost(总额)=0,quality=100,goods=实际商品名称
价格表:etprice=12.5,goods = 实际商品名称
目的: 根据订单的商品名 取得 价格表里对应的 价格 赋值到 订单表的 price
然后根据订单表的 price和quality计算出总额cost
(这是举个例子,不合理的思路不管,只看SQL语句)SQL: update 订单表 a,价格表 b set a.price=b.etprice,a.cost=a.price*a.quality where a.goods = b.goods上面这条语句
订单表里有两条记录时候,得出结果都是正确的,订单表的price和cost都是正确值
3条记录以上就错了:订单表里的cost结果为0,原因是a.cost=a.price*a.quality中的a.price为0,
但字段中a.price确有正确值的... 上面SQL的工作过程是怎样的? 是先逐个计算SQL里的参数,最后再update,还是逐个计算update的?
订单表:price=0,cost(总额)=0,quality=100,goods=实际商品名称
价格表:etprice=12.5,goods = 实际商品名称
目的: 根据订单的商品名 取得 价格表里对应的 价格 赋值到 订单表的 price
然后根据订单表的 price和quality计算出总额cost
(这是举个例子,不合理的思路不管,只看SQL语句)SQL: update 订单表 a,价格表 b set a.price=b.etprice,a.cost=a.price*a.quality where a.goods = b.goods上面这条语句
订单表里有两条记录时候,得出结果都是正确的,订单表的price和cost都是正确值
3条记录以上就错了:订单表里的cost结果为0,原因是a.cost=a.price*a.quality中的a.price为0,
但字段中a.price确有正确值的... 上面SQL的工作过程是怎样的? 是先逐个计算SQL里的参数,最后再update,还是逐个计算update的?
`kymoneyfund`, `totalfund`, `totalstockfund`, `totalbargainfund`, `totalprofitor
lossfund`, `rate`, `dayrate`, `weekrate`, `monthrate`, `yearrate`, `dayrank`, `w
eekrank`, `monthrank`, `yearrank`, `statupdatetime`, `createtime`, `matchid`, `a
ccountcode`, `accounttype`, `accountlimits`, `bargainlimits`) VALUES
-> (39, '测试用户', 1, 100000.00, 86948.00, 45181.60, 894728.00, 807780.00,
13000.00, 794728.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0, 0, 0, 0, 1270135562, 0,
'1-0', 1, '0', NULL),
-> (40, '测试用户', 1, 10000000.00, 8564280.00, 8564280.00, 9204780.00, 6405
00.00, 1430000.00, -795220.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 0, 0, 0, 0, 1270
136442, 3, '1-3', 2, '0', NULL);
ERROR 1054 (42S22): Unknown column 'rate' in 'field list'
mysql>
你的例子,我无法运行!建议你自己先试一下。可以简化一下例子,无关的字段你可以删除。另外建议直接贴到贴子中,一天我只看一次消息。贴到贴子中,这样帮你的人也会多一些。