日期:2014-05-18 浏览次数:20557 次
--> 测试数据:[tb_emp] if object_id('[tb_emp]') is not null drop table [tb_emp] create table [tb_emp]( [职工号] varchar(3), [姓名] varchar(4), [班组名称] varchar(4), [档案工资] int, [奖金] int, [应纳税金] int, [实得工资] int, [应发工资合计] int, [年] int, [月] int ) insert [tb_emp] select '001','张三','0010',2000,1500,20,3480,3480,2012,1 union all select '001','张三','0010',2000,1400,15,3385,3385,2012,2 union all select '001','张三','0010',2000,1300,10,3290,3290,2012,3 union all select '002','李四','0020',2000,1500,20,3480,3480,2012,1 union all select '002','李四','0020',2000,1400,15,3385,3385,2012,2 union all select '002','李四','0020',2000,1500,20,3290,3290,2012,3 select * from [tb_emp] union all select 职工号,姓名='合',班组名称='计',sum(档案工资) 档案工资, sum(奖金) 奖金,sum(应纳税金) 应纳税金,sum(实得工资) 实得工资, sum(应发工资合计) 应发工资合计,年,月='' from [tb_emp] group by [职工号],[姓名],[班组名称],年 order by 职工号,档案工资 /* 职工号 姓名 班组名称 档案工资 奖金 应纳税金 实得工资 应发工资合计 年 月 001 张三 0010 2000 1500 20 3480 3480 2012 1 001 张三 0010 2000 1400 15 3385 3385 2012 2 001 张三 0010 2000 1300 10 3290 3290 2012 3 001 合 计 6000 4200 45 10155 10155 2012 0 002 李四 0020 2000 1500 20 3480 3480 2012 1 002 李四 0020 2000 1400 15 3385 3385 2012 2 002 李四 0020 2000 1500 20 3290 3290 2012 3 002 合 计 6000 4400 55 10155 10155 2012 0 */
------解决方案--------------------
create table emp_salary ( empid varchar(3), empname varchar(10), classname varchar(5), basic_salary money, rewards money, tax money, final_salary money, salary_out money, syear varchar(4), smonth int ) insert into emp_salary s