1 在职工资表 zz (字段:id , name ,gz(工资))
2 退休工资表 tx  (字段:id , name ,gz)
3 银行报表 bank  (字段:id , name ,zh(账号) , gz)
设bank中已有id,name,zh字段的值
要把zz 和tx表的gz字段写入到bank表中,并且和其他字段相对应(就是说不能弄串行,即id是1的人写入的gz要和他的name,zh字段对应)。
请问sql怎么写?

解决方案 »

  1.   

    update bank set gz=a.gz from zz a where a.id=bank.id
    update bank set gz=b.gz from tx b where b.id=bank.id
      

  2.   

    如果bank表id不全的话就有问题。不如插入到一张新表,然后group汇总一下
      

  3.   

    update bank set gz=a.gz from zz a where a.id=bank.id
    update bank set gz=b.gz from tx b where b.id=bank.id
      
      

  4.   

    update bank set gz=a.gz from zz a where a.id=bank.id
    update bank set gz=b.gz from tx b where b.id=bank.id
      

  5.   

    Update bank set gz=zz.gz + tx.gz from zz,tx where zz.id=tx.id and bank.id=zz.id
      

  6.   

    1、银行报表中的ID是否已经囊括了ZZ和TX中的ID号
    2、ZZ和TX中的ID号合并后是否有重复值
    3、进行一次计算后ZZ表中的ID是否转入到TX中(例如7.7号计算一次,7.8号有人退休,7.15号才转帐,这个人的GZ怎么处理)
    4、进行一次计算后ZZ表中的ID是否还在(例如7.7号计算一次,7.8号有人离职,7.15号才转帐,这个人的GZ怎么处理——转帐或现金)确定后很简单:
    delect from bank where 条件
    insert into bank select * from (select * from zx where 条件 union select * from tx where 条件)