我先把3张表和关键字段列一下:tab_cntvsorder  --订单表
orderid   --主键
bonus  --赠送积分字段tab_cntvscart   --购物车表
orderid   --订单表id关联到订单表
productid  --商品id
pcount    --商品数量
tab_product_price --商品价格表
productid   --商品Id
bonus  --单件商品赠送积分数
批量Update使用的表字段就上面所述,我要实现的功能是  轮询tab_cntvsorder 表符合条件的订单通过购物车表找到对应的商品(购物车表中是相同订单的同一种商品存放一条记录,只是pcount数量不一样),再通过购物车表查找商品价格表取到赠送积分数字段,乘以购物车表中的 pcount update到tab_cntvsorder表bonus字段,请问不通过java程序只是通过sql能实现吗?
小弟先拜谢各位了。OracleJava

解决方案 »

  1.   

    update tab_cntvsorder t
       set t.bonus =
           (select sum(t1.pcount * t2.bonus)
              from tab_cntvscart t1, tab_product_price t2
             where t1.productid = t2.productid
               and t.orderid = t1.orderid)
    主要是摸不清楼主表 里面的记录 是怎么个存法
    ???????????
      

  2.   

    我说下我的一点看法:
    一  得到一个汇总的表,保存orderid和积分的数量
       这要从表购物车表和商品价格表通过产品id进行关联得到,注意一点,要求的是汇总值
    二 用merger函数把订单表和上面求的汇总表关联的插入。
      

  3.   

    to:u010412956 
    结贴给不了你分,给你分那框可看不到 不能编辑