表有字段A1,A2,A3,A1是编号,A2,A3是两个数据型字段
如下
A1          A2         A3
11      
1100
110022     100        100
110033     100        100
1122
112200     100        100
112233     100        100
现求SQL汇总语句。能实现根据编号分级汇总
也就是说
1100=110022+110033
1122=112200+112233
11=1100+1122
需要注意是分级汇

解决方案 »

  1.   

    建议用临时表,把数据一行一行保存近来,遇到汇总的时候用UNION 
    然后把报表连接到临时表,然后释放临时表
      

  2.   

    select a.a1,sum(isnull(b.a2,0)),sum(isnull(b.a3,0))
     from kk a
     left join kk b on left(b.a1,len(a.a1))=a.a1
     where isnull(a.a2,0)=0 and isnull(a.a3,0)=0
     group by a.a1
      

  3.   

    select a1,a2,a3 from talbe
    union all select Left(a1,4),sum(a2),sum(a3) Group by Left(a1,4)
    union all select Left(a1,2),sum(a2),sum(a3) Group by Left(a1,2)
      

  4.   

    select A1=A.A1,
    A2=(select SUM(C.A2) from DataTab C where C.A1 LIKE A.A1+'%'),
    A3=(select SUM(C.A3) from DataTab C where C.A1 LIKE A.A1+'%') 
    from DataTab A