表1:
Id GroupName     Line             Time   Total
1 普通团  海南一日游 2011-11-24 12:06:11
2 普通团 桂林山水1日游 2011-11-21 11:47:48
表2:
DetailId TypeName Sum Explain       BillId
1 车费 100 司机--刘 1
2 住宿 300 3晚 1
3 餐费 300 3参 1
4 门票 200 20一张 1
5 导补 100 1
6 其他 200 其他 1
7 车费 80 司机--李 2
8 住宿 100 1晚 2
9 餐费 200 2 2
10 门票 100 20 2
要求 在BillId=Id的条件下 表1中total的值为表2中sum的和 
例如 统计 BillId=2 的 sum值 放到 total中

解决方案 »

  1.   

    要求结果是什么,try:
    update b1 inner join
    (select BillId,sum(`sum`) as ss from b2 group by BillId) b
    on a.id=b.BillId
    set a.`total`=b.ss
      

  2.   

    谢谢,上面的sql试了可以,可我在想是不是数据没库有设计好,新增数据的时候很麻烦,先新增表1,再新增表2,然后得再修改表1的total值,唉.不知道,有没有好的建议。
      

  3.   

    表1: 中的Total字段不需要。可以通过查询得到。
      

  4.   

    1、表1的total值可以直接用查询解决;
    2、表2的TypeName 可以用TypeID, 另外 连接费用名称表
      

  5.   

    select GroupName,sum(sum) from t1,t2 where t1.id=t2.billid group by t2.billid;