您的位置:程序门 -> 企业开发 -> 企业信息化



部门汇总统计


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


部门汇总统计[已结贴,结贴人:prodever2006]
发表于:2008-02-13 11:06:01 楼主
汇总统计总公司下的二级部门及其子部门的用款,
要求显示到   二级部门(二级部门的子部门用款自动汇总到二级部门下)
比如,
部门结构为:

总公司
    2a                       10元
        2a-1               10元
        2a-2               5元
    2b                       50元
    2c                       30元
显示结果应该为:
  部门                       用款总额
  2a                         25
  2b                         50
  2c                         30

请问有没有朋友知道   sql   查询语句怎么写?   谢谢!

用款基础数据表expense相关字段:
id(表主键),amount(金额),owner(用款部门id)

部门结构表viewowner   相关字段
id(表主键,部门id),fatherid(部门的上级id),
其中,总公司的fatherid=-1,总公司的id=1

发表于:2008-02-13 13:30:221楼 得分:0
重新叙述一下,带了演示数据,请各位朋友指教一下哈。
汇总统计总公司下的二级部门及其子部门的用款,  
要求显示到       二级部门(二级部门的子部门用款自动汇总到二级部门下)  
比如,  
部门结构为:  

总公司
  zhb                           20
                zhbgs         10
                st               5
  bjglb                       10
  jls                           10
  wcglb
              wcglblp       1
显示结果应该为:  
    部门                                               用款总额  
    zhb                                                 35  
    bjglb                                             10
    jls                                                 10
    wcglb                                             1

请问有没有朋友知道       sql       查询语句怎么写?       谢谢!

表结构和演示数据:

create       table       expense(owner       varchar(256),amount       decimal(9))  
insert       into       expense       select       'sd!','10'  
insert       into       expense       select       'sd2','10'  
insert       into       expense       select       'sd17','10'  
insert       into       expense       select       'sd18','5'  
insert       into       expense       select       'sd11','10'  
insert       into       expense       select       'cy000002','1'  
insert       into       expense       select       'sd2','10'  


create       table       viewowner(name   varchar(256),id       varchar(256),fatherid       varchar(256))  


insert       into       viewowner       select       'bjglb','sd11','c'  
insert       into       viewowner       select       'jls','sd1','c'  

insert       into       viewowner       select       'zhb','sd2','c'  

insert       into       viewowner       select       'zhbgs','sd17','sd2'  
insert       into       viewowner       select       'st','sd18','sd2'  


insert       into       viewowner       select       'wcglb','sd10','c'  
insert       into       viewowner       select       'wcglblp','cy000002','sd10'  
发表于:2008-02-14 14:43:582楼 得分:20
试一下如下语句,不知道是不是你想要的:

select   fatherid,sum(amount)   from  
(select   v.fatherid,e.amount   from   viewowner   v   inner   join   expense   e   on   v.id=e.owner)   t  
group   by   fatherid


快速检索

最新资讯
热门点击