应该不用循环的:select datepart(year,dtfield),sum(...) as ... from tablename
group by datepart(year,dtfield)

解决方案 »

  1.   

    什么意思?
    select count(*) from yourtable group by year
    问题说具体一点
      

  2.   

    select datepart(year,dtfield),sum(...) as ... from tablename
    group by datepart(year,dtfield)
      

  3.   

    最好再加上 order by datepart(year,dtfield)
      

  4.   

    那么,我能用insert 语句一次全部插入5条汇总记录吗?
      

  5.   

    insert tableName1(Num_Year,...)
    select datepart(year,dtfield),sum(...) as ... from tablename
    group by datepart(year,dtfield)
      

  6.   

    insert into www(number,name)
    select www(sum(number),name) 
    from www 
    group by www.name
    不管用啊!
    库结构如下:
    ID1 name number
    1 啊 10
    2 啊 20
    3 不 30
    4 不 40
    5 不 50
      

  7.   

    insert into www(number,name)
    select sum(number),name 
    from www 
    group by name
      

  8.   

    如果你的列id1是自增长列或者你不管id1列的值的话,那我绝对同意Yang_(扬帆破浪) 的!
      

  9.   

    如果ID不允为空 ,可以insert into www(id1,name,number)
    select IDENTITY(int, 2002,1),name,sum(number) 
    from www 
    group by nameinsert into www(id1,name,number)
    select 2002,name,sum(number) 
    from www 
    group by name
      

  10.   

    to: OpenVMS(半知半解) 
    insert into www(id1,name,number)
    select IDENTITY(int, 2002,1),name,sum(number) 
    from www 
    group by name的写法误人子弟,只用在带有 INTO table 子句的 SELECT 语句中,以将标识列插入到新表中。
      

  11.   

    真要这么写只能:select IDENTITY(int, 2002,1) as id1,name,sum(number) as numb
    into #Temp
    from www 
    group by name
    insert into www(id1,name,number)
    select id1,name,numb
    from #Temp