日期:2014-05-18 浏览次数:20671 次
--> 测试数据:[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