表一的结构及数据如下:
    a             c      d     e f i
f3001006698 f3036001 2003-10-5   112.3 0 200306
f3001006698 f3036001 2003-10-5   -112.3 0 200306
f3001006698 f3036001 2003-10-5   112.3 0 200306
f3001006698 f3036001 2003-10-5  21 0 200307
f3001006698 f3036001 2003-10-5   -21 0 200307
f3001006698 f3036001 2003-10-5   21 0 200307
f3001006698 f3036001 2003-10-5   16.7 0 200308
f3001006698 f3036001 2003-10-5   -16.7 0 200308
f3001006698 f3036001 2003-10-5   16.7 0 200308
f3100024334 f3027001 2003-10-6   39.31 5.54 200307
f3100024334 f3027001 2003-10-6   18 0.86 200308
f3100043641 f0000ds1 2003-10-2   58.16 1.84 200308
f3100044679 f3029001 2003-10-8   22.89 3.36 200307
f3100044679 f3029001 2003-10-8   32.61 1.76 200308
f3506462712 f3001005 2003-10-1   205.31 44.96 200306
f3506462712 f3001005 2003-10-1   37.3 4.7 200307
f3506462712 f3001005 2003-10-1   27 0.73 200308
表二的结构及数据如下:
   a         c      d   e   f     i     ii       iii
f3001006698 f3036001 2003-10-5 150    0    200306 200307  200308
f3100024334 f3027001 2003-10-6 57.31  6.4   200307 200308
f3100043641 f0000ds1 2003-10-2 58.16  1.84  200308
f3100044679 f3029001 2003-10-8 55.5   5.12  200307 200308
f3506462712 f3001005 2003-10-1 269.61 50.39 200306 200307  200308我怎么才能得到表二的结果呢?烦请高手指点一二 ^_^

解决方案 »

  1.   

    表二的数据不是在那里吗?select 啊
      

  2.   

    建立一个临时表Temp
    结构为 a,c,d,e,f,i,ii,iii,.....iiiiiiii
    第一步,插入数据。
    insert into Temp(a,c,d,e,f)
    select a,c,d,sum(e),sum(f) from 表一
    group by a,c,d
    第二步,更新年月。
    对应的在临时表中查找数据a,c,d.然后对应在表一中查找有几个年月,然后在更新到临时表中
      

  3.   

    一个sql搞定
    SELECT 表1.a,表1.c,表1.d,表1.e,表1.f,表1.i,'  ' as ii,'  'as iii
    union
    SELECT 表2.a,表2.c,表2.d,表2.e,表2.f,表2.i,表2.ii,表2.iii
      

  4.   

    用sql字符串
    select 表1.列......unionselect 表2.列
      

  5.   

    我也同意tw_cshn(一无所有),
    但是到底临时表Temp要加多少列不太好确定。bestluo(要学)的也是一种方法,可能还简单些