表1: 名称   数量  单价 加项  小计     表2:   香焦   4   5  0   20 
      香焦    2      5    0    10
大概有10几个像上面的表,想用一个insert语句把上面那10几个表中的所有记录都插入到一个表中
把所有名称相同的字段的  数量 和 小计项进行累加。
例如把上面的表1表2所有字段插入到新表中。。
就会有只一个字段名称   数量  单价  加顶   小计
香焦     6     5     0      30不知道这句SQL该怎么写。我用的是SQLserver数据库

解决方案 »

  1.   

    不是的,每张表中有好几10条记录。。例如什么苹果,菊子的。
    就是要把“名称”and“单价”相等的物品进行数量,小计的累加。
      

  2.   

    如果两个表的字段和数据类型都差不多的话的
    试试以的SQL语法:
    select 名称,sum(数量),单价,加项,sum(小计) from 表1
    union
    select 名称,数量,单价,加项,小计 from 表2
    group by 名称
    我没怎么调试,你试试看行不行吧(我是个新手)
      

  3.   

    select 名称, sum(数量), min(单价), sum(加项), sum(小计)
    from
      (select 名称, 数量, 单价, 加项, 小计 from 表1
       union all select 名称, 数量, 单价, 加项, 小计 from 表2
       union all select 名称, 数量, 单价, 加项, 小计 from 表3
       ......
       union all select 名称, 数量, 单价, 加项, 小计 from 表10
      ) tmp
    group by 名称--前提,相同名称的单价相同,如存在不相同的情况,这样:
    select 名称, sum(数量), 单价, sum(加项), sum(小计)
    from
      (select 名称, 数量, 单价, 加项, 小计 from 表1
       union all select 名称, 数量, 单价, 加项, 小计 from 表2
       union all select 名称, 数量, 单价, 加项, 小计 from 表3
       ......
       union all select 名称, 数量, 单价, 加项, 小计 from 表10
      ) tmp
    group by 名称, 单价