求一sql2000的语句,实现下面功能,鼓捣好几天了,期待大神出现!该如何解决

求一sql2000的语句,实现下面功能,鼓捣好几天了,期待大神出现!
数据库表 tb_emp
字段:职工号,姓名,班组名称,档案工资,奖金,应纳税金,实得工资,应发工资合计,年, 月
数据: 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
  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
我想用数据库语句实现下列形式:其中月份需要用户输入需统计的截止月份,比如“1--3”月份:

  职工号,姓名,班组名称,档案工资,奖金,应纳税金,实得工资,应发工资合计,年, 月
  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  
  002 李四 0010 2000 1500 20 3480 3480 2012 1
  002 李四 0010 2000 1400 15 3385 3385 2012 2  
  002 李四 0010 2000 1300 10 3290 3290 2012 3
  002 合计 6000 4200 45 10155 10155  


望各位大神不吝赐教,谢谢


------解决方案--------------------
2000里面好象还没有05里面的一些高级特性.
select 职工号,姓名,班组名称,档案工资,奖金,应纳税金,实得工资,应发工资合计,年, 月
(
select 职工号,姓名,班组名称,档案工资,奖金,应纳税金,实得工资,应发工资合计,年, 月
from tb_temp where 月 between '1' and '3'
union all
select 职工号,'合计',班组名称,sum(档案工资),sum(奖金),sum(应纳税金),sum(实得工资),sum(应发工资合计),'',''
from tb_temp where 月 between '1' and '3'
group by 职工号
)
order by 职工号
------解决方案--------------------
SQL code

--> 测试数据:[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
*/

------解决方案--------------------
SQL code
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 
select '001', 'ZS' ,'0010' ,2000, 1500, 20, 3480, 3480, '2012', 1 union all 
select '001', 'ZS', '0010' ,2000, 1400, 15, 3385, 3385, '2012', 2 union all   
select '001', 'ZS' ,'0010', 2000, 1300, 10, 3290, 3290, '2012', 3 union all 
select '002', 'LS' ,'0020', 2000, 1500, 20, 3480, 3480, '2012', 1 union all 
select '002', 'LS' ,'0020', 2000, 1400, 15, 3385, 3385, '2012', 2 union all 
select '002', 'LS' ,'0020', 2000, 1500, 20, 3290, 3290, '2012', 3 
select * from 
(
select empid,empname,classname,basic_salary,rewards,tax,final_salary,salary_out,syear, smonth
from emp_salary where smonth between 1 and 3
union all
select empid,'Total',classname,sum(basic_salary),sum(rewards),sum(tax),sum(final_salary),sum(salary_out),null,null
    from emp_salary where smonth between 1 and 3
    group by empid,classname
) as q
order by empid,syear desc