数据:年份 奖励额 类型
2009  1111  小孩
2009  2342  老人
2008  3000  成年人
2009   1111  小孩
2007   234   老人
2009   234   成年人
想要:将年份相同的类型相同的合并:如:
2009 有2个小孩.1个老人,1个成年人 ,想要结果是:年份 奖励额 类型
2009  2222  小孩   (注意:这个2009年有2个小孩,在这个合并,并且奖励额相加)
2009  2342  老人
2009  234   成年人
2008  3000  成年人
2007  234    老人
也就是重复的合并.奖励额相加...其他的不重复的不变.....

解决方案 »

  1.   

    select 年份,
           sum(奖励额)奖励额,
           类型 
    from tb
    group by 年份,类型
      

  2.   

    select 年份,sum(奖励额) as 奖励额,类型
    from tb
    group by 年份,类型
      

  3.   

    select 年份,
           sum(奖励额) as 奖励额,
           类型 
    from tb
    group by 年份,类型
      

  4.   

    select 年份,sum(奖励额) as 奖励额,类型 
    from tb 
    group by 年份,类型
      

  5.   

    if not object_id('tb') is null
    drop table tb
    Go
    Create table tb([年份] Datetime,[奖励额] int,[类型] nvarchar(3))
    Insert tb
    select '2009',1111,N'小孩' union all
    select '2009',2342,N'老人' union all
    select '2008',3000,N'成年人' union all
    select '2009',1111,N'小孩' union all
    select '2007',234,N'老人' union all
    select '2009',234,N'成年人'
    Go
    select 年份,
           sum(奖励额)奖励额,
           类型 
    from tb
    group by 年份,类型
    /*
    年份                      奖励额         类型
    ----------------------- ----------- ----
    2009-01-01 00:00:00.000 2222        小孩
    2008-01-01 00:00:00.000 3000        成年人
    2009-01-01 00:00:00.000 234         成年人
    2007-01-01 00:00:00.000 234         老人
    2009-01-01 00:00:00.000 2342        老人(5 個資料列受到影響)
    */
      

  6.   


    create table #PP
    (
      [year] int,
      num int,
      People varchar(20)
    )
    insert into #PP select 2009,1111,'小孩'
    insert into #PP select 2009,2342,'老人'
    insert into #PP select 2008,3000,'成年人'
    insert into #PP select 2009,1111,'小孩'
    insert into #PP select 2007,234,'老人'
    insert into #PP select 2009,234,'成年人'select [year],sum(num) 奖励额 ,People
    from #PP 
    group by [year],Peopleyear        奖励额         People
    ----------- ----------- --------------------
    2008        3000        成年人
    2009        234         成年人
    2007        234         老人
    2009        2342        老人
    2009        2222        小孩(5 行受影响)
      

  7.   

    --> 测试数据:[tb]
    if object_id('[tb]') is not null drop table [tb]
    create table [tb]([年份] int,[奖励额] int,[类型] varchar(6))
    insert [tb]
    select 2009,1111,'小孩' union all
    select 2009,2342,'老人' union all
    select 2008,3000,'成年人' union all
    select 2009,1111,'小孩' union all
    select 2007,234,'老人' union all
    select 2009,234,'成年人'select * from [tb]select [年份],sum([奖励额]) as [奖励额] ,[类型] 
    from [tb] 
    group by [年份],[奖励额],[类型]
    order by [年份],[类型] desc/*
    年份 奖励额 类型
    2007 234 老人
    2008 3000 成年人
    2009 2222 小孩
    2009 2342 老人
    2009 234 成年人*/这样?
      

  8.   

    select [year],sum(num) 奖励额 ,People
    from #PP 
    group by [year],People
    order by [year] desc
    year        奖励额         People
    ----------- ----------- --------------------
    2009        234         成年人
    2009        2342        老人
    2009        2222        小孩
    2008        3000        成年人
    2007        234         老人(5 行受影响)
      

  9.   

    呵呵.OK...这一系列的基本OK了..!