看你的编号的编码结构很明显的部门是分级管理的,并且分级依赖编号,这样就简单了:
select code, dep_name, sum(a.salary) from ( select substring( dep_code, 1, 3) as code, salary from T1 ) a, T1
where code = dep_code
group by code, dep_name
这样你的汇总就简单多了。
否则只有麻烦一点,一个一个地填了。
求和可用
string ls_dep_code
decimal ld_salary_total
declare my_cur cursor for select dep_name,dep_code from t1 where length(dep_code) = 3
open my_cur;
fetch my_cur into :ls_dep_name,:ls_dep_code;
do while sqlca.sqlcode = 0
select sum(salary) into :ld_salary_total from t1 where )depcode like :ls_dep_code + '%');
insert into total_table(dep_name,salary_total) values(:ls_dep_name,:ld_salary_total);
fetch my_cur into :ls_dep_name,:ls_dep_code;
loop
close my_cur;
commit;