declare @year char(4)
set @year = '2003'
select @year, sum(基本工资), sum(扣款), sum(基本工资 - 扣款) from 表1 
where datepart(year, 发放日期) = cast(@year as int)
union all
select conver(char(7), 发放日期 120), sum(基本工资), sum(扣款), sum(基本工资 - 扣款) from 表1 
where datepart(year, 发放日期) = cast(@year as int)
group by conver(char(7), 发放日期 120)

解决方案 »

  1.   

    select substring(发放日期,0,7),sum(基本工资),sum(扣款),sum(基本工资)-sum(扣款)  from 表 where datepart(year,发放日期)='年份'
    group by 发放日期
      

  2.   

    表1
    基本工资    迟到扣款 保险扣款 补贴     津贴       发放日期      姓名
    .....       ....   ...         .....           ....
      1111       10     2         5        5          2003-03-06    a
      1001       9      3         5        6          2003-03-31    b
      1011       8      4         5        4          2003-03-13    c
    ....         ...            .......          ....
      2222       13     5        5         8          2003-04-08    a
      1222       17     6         4        5          2003-04-02    b
      1222       13     7        4         5          2003-04-22    c
    ......      ...         .........       ....
     我要实现的功能是输入年如:2003可以统计出各个
    这年中1-12个月各个月的全部合计工资,功能如下::各个月如下
    .......
    时间       应发                扣除                   奖励         实际发放
    ..............             
    2003-03  Sum(基本工资) Sum(迟到扣款 +保险扣款) Sum(补贴+津贴)    *****元  2003-03  Sum(基本工资) Sum(迟到扣款 +保险扣款) Sum(补贴+津贴)    *****元  
    .......
      

  3.   

    select 时间=convert(varchar(6),发放日期,112)
    ,应发=sum(基本工资),迟到扣款=sum(迟到扣款)+sum(保险扣款)
             ,津贴=sum(津贴)+sum(补贴)
    ,实际发放=sum(基本工资-迟到扣款-保险扣款+补贴+津贴)
    ,姓名
    from 表1 group by convert(varchar(6),发放日期,112),姓名