zoukankan      html  css  js  c++  java
  • 根据父ID聚合

    create table myTest_tt
    (
    	id int identity(1,1),
    	EID varchar(20),
    	BID varchar(20),
    	[name] varchar(30),
    	[value] int
    )
    
    go
    insert into myTest_tt
    	  select '10000001','101','一般性公共服务',0
    union select '10000001','101031','一般性公共服务1',100
    union select '10000001','10103101','一般性公共服务1-1',100
    union select '10000001','10103102','一般性公共服务1-2',100
    union select '10000001','101032','一般性公共服务2',200
    union select '10000001','10103201','一般性公共服务2-1',300
    union select '10000001','10103202','一般性公共服务2-2',100
    union select '10000001','101033','一般性公共服务3',300
    union select '10000001','10103301','一般性公共服务3-1',300
    union select '10000001','10103302','一般性公共服务3-2',300
    
    insert into myTest_tt
    	  select '10000002','201','一般性公共服务',0
    union select '10000002','201031','一般性公共服务1',100
    union select '10000002','20103101','一般性公共服务1-1',100
    union select '10000002','20103102','一般性公共服务1-2',100
    union select '10000002','201032','一般性公共服务2',200
    union select '10000002','20103201','一般性公共服务2-1',300
    union select '10000002','20103202','一般性公共服务2-2',100
    union select '10000002','201033','一般性公共服务3',300
    union select '10000002','20103301','一般性公共服务3-1',300
    union select '10000002','20103302','一般性公共服务3-2',300
    
    go
    

    id          EID                  BID                  name                           value
    ----------- -------------------- -------------------- ------------------------------ -----------
    1           10000001             101                  一般性公共服务                        0
    2           10000001             101031               一般性公共服务1                       100
    3           10000001             10103101             一般性公共服务1-1                     100
    4           10000001             10103102             一般性公共服务1-2                     100
    5           10000001             101032               一般性公共服务2                       200
    6           10000001             10103201             一般性公共服务2-1                     300
    7           10000001             10103202             一般性公共服务2-2                     100
    8           10000001             101033               一般性公共服务3                       300
    9           10000001             10103301             一般性公共服务3-1                     300
    10          10000001             10103302             一般性公共服务3-2                     300
    11          10000002             201                  一般性公共服务                        0
    12          10000002             201031               一般性公共服务1                       100
    13          10000002             20103101             一般性公共服务1-1                     100
    14          10000002             20103102             一般性公共服务1-2                     100
    15          10000002             201032               一般性公共服务2                       200
    16          10000002             20103201             一般性公共服务2-1                     300
    17          10000002             20103202             一般性公共服务2-2                     100
    18          10000002             201033               一般性公共服务3                       300
    19          10000002             20103301             一般性公共服务3-1                     300
    20          10000002             20103302             一般性公共服务3-2                     300

    需要按照父级包含的进行合并

    例如 BID=101=所有前3位为101的value的sum

    201031  =       201031       +  20103101+ 20103102=300

    select 
    a.EID AEID,A.bid ABID,max(A.name), sum(b.VALUE) BVALUE
      from myTest_tt a,myTest_tt b
    where b.bid like a.bid+'%' and a.EID=b.eid
    group by A.BID,A.EID
    
    
    
     
    select a.EID AEID,A.bid ABID,max(A.name), sum(b.VALUE) BVALUE
     from  myTest_tt a
    inner join myTest_tt b
    on b.bid like a.bid+'%'  and a.EID=b.eid
    group by A.BID,A.EID
    


     

    结果表示如下:

    AEID                 ABID                                                BVALUE
    -------------------- -------------------- ------------------------------ -----------
    10000001             101                  一般性公共服务                        1800
    10000001             101031               一般性公共服务1                       300
    10000001             10103101             一般性公共服务1-1                     100
    10000001             10103102             一般性公共服务1-2                     100
    10000001             101032               一般性公共服务2                       600
    10000001             10103201             一般性公共服务2-1                     300
    10000001             10103202             一般性公共服务2-2                     100
    10000001             101033               一般性公共服务3                       900
    10000001             10103301             一般性公共服务3-1                     300
    10000001             10103302             一般性公共服务3-2                     300
    10000002             201                  一般性公共服务                        1800
    10000002             201031               一般性公共服务1                       300
    10000002             20103101             一般性公共服务1-1                     100
    10000002             20103102             一般性公共服务1-2                     100
    10000002             201032               一般性公共服务2                       600
    10000002             20103201             一般性公共服务2-1                     300
    10000002             20103202             一般性公共服务2-2                     100
    10000002             201033               一般性公共服务3                       900
    10000002             20103301             一般性公共服务3-1                     300
    10000002             20103302             一般性公共服务3-2                     300


     

  • 相关阅读:
    聚焦LSMIMO的四大层面,浅谈5G关键技术
    基于LiteOS Studio零成本学习LiteOS物联网操作系统
    使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘
    GaussDB(DWS)应用实践丨负载管理与作业排队处理方法
    GaussDB(DWS)磁盘维护:vacuum full执行慢怎么办?
    从物理空间到数字世界,数字孪生打造智能化基础设施
    Lab 4 : OpenFlow
    SDN控制器拓扑发现(一)
    pxe dhcp
    RyuBook1.0案例二:Traffic Monitor项目源码分析
  • 原文地址:https://www.cnblogs.com/dingdingmao/p/3146531.html
Copyright © 2011-2022 走看看