1.总成绩表
ClassID StudentID SumFen(总分)
------------------------------------
000005 000001 503
000005 000003 498
000004 000006 487
000004 000003 501
2、分段间隔 N=10 可能N=20
结果:
         500-510 490-500 480-490 
000004      1         0      1
000005      1         1      0
(要不access 中用呀)

解决方案 »

  1.   

    1.总成绩表
    ClassID StudentID SumFen(总分)
    ------------------------------------
    000005 000001 503
    000005 000003 498
    000004 000006 487
    000004 000003 501
    2、分段间隔 N=10 可能N=20
    结果:
             500-510 490-500 480-490 
    000004      1         0      1
    000005      1         1      0
    (要 在access 中用呀)
      

  2.   

    --Access中运行SELECT      [ClassID], 
         sum(IIf([SumFen]>500 And [SumFen]<=510,1,0)) AS [500-510],
         sum(IIf([SumFen]>490 And [SumFen]<=500,1,0)) AS [490-500],
         sum(IIf([SumFen]>480 And [SumFen]<=490,1,0)) AS [480-490]FROM Tt
    GROUP BY [ClassID]
      

  3.   

    如果要分很多个段,那不是要写很多个IIF??有没有完善一点
      

  4.   

    如果不分段,直接生成交叉表,可以使用动态的处理方法,transform...但是你要求分段,则必须用上述方式处理。如果你也要求动态的,那就用代码动态生成上述查询SQL语句。
      

  5.   

    在网上找到一个是在sql server下可以的,但不能翻译成Access. 谁能帮一下
    select Convert(varchar(5),(convert( int, price/1000)-1)*1000) +'~' + Convert(varchar(5),convert( int, price/1000)*1000),
    sum(price)
    from #bb
    group by Convert(varchar(5),(convert( int, price/1000)-1)*1000) +'~' + Convert(varchar(5),convert( int, price/1000)*1000)