第一个表叫 ”订购单“ 结构为 “订购单号 金额“
第二个表叫 ”订购单明细“ 结构为 ”订购单号 单价 数量“
要求 金额=单价*数量,sql语句这么写为什么不对
update book.订购单 set 金额=(select book.订购单明细.单价 from book.订购单明细) *( select book.订购单明细.数量 from book.订购单明细) where (book.订购单.订购单号= select book.订购单明细.订购单号 from book.订购单明细)
book是模式
select 订购单.订购单号, 订购单.金额
from =订购单,订购单明细
where 订购单.订购单号=订购单明细.订购单号
and 订购单.金额=订购单明细.单价*订购单明细.数量
我按照你的写了,语法没问题,可是值没有更新,不需要用update吗?
update 订购单 a set 金额 = (SELECT a.金额
from 订购单 a , 订购单明细 b
where a.订购单号 = b.订购单号
and a.金额 = b.单价* b.数量)
update 订购单 set 金额=( select 订购单.金额
from 订购单,订购单明细
where 订购单.订购单号=订购单明细.订购单号
and 订购单.金额=订购单明细.单价*订购单明细.数量)
执行以后,原来表中的金额全部更新成NULL了,单价和数量都有值
update 订购单 set 金额=( select 订购单.金额
from 订购单,订购单明细
where 订购单.订购单号=订购单明细.订购单号
and 订购单.金额=订购单明细.单价*订购单明细.数量)
可以加多where 条件来控制!
那应该怎么写呢?麻烦详细说一下,谢谢!