table A 三个字段为
id  type  value 
1     1    50
1     1    100
1     2    100
1     2    50
2     1    50
2     1    30
2     2    50
2     2    50table B  
id   type1_value  type2_value
1         150        150
2         80         100问题是:已知A表,怎么生成B表,用sql语句实现?

解决方案 »

  1.   

    create table B as select * from A;
      

  2.   

    create table b as 
    select id,
    sum(if(type=1,value,0)) as type1_value,
    sum(if(type=2,value,0)) as type2_value
    from A
    group by id
      

  3.   

    create table B(id,type1_value,type2_value) as select id,type,value from A;
      

  4.   

    insert into b 
    select id,
    sum(if(type=1,value,0)) as type1_value,
    sum(if(type=2,value,0)) as type2_value
    from A
    group by id
      

  5.   

    如果表B改成这样子的怎么实现?
    table B   
    id  type1_value   type2_value   sum   period_id
    1     150           150         300      1
    2     80            100         180      1