当前位置: 代码迷 >> Sql Server >> 每隔5行做个统计但不是小计那种解决方法
  详细解决方案

每隔5行做个统计但不是小计那种解决方法

热度:73   发布时间:2016-04-24 09:12:56.0
每隔5行做个统计但不是小计那种
比如表  A         

字段SL
        5
         7
       7
      8
       8
     5
    7
    8
   2
   3
   4
    2
希望得到的查询是
1-5            35 
6-10         25
11-12        6
当我双击6-10也能显示明细
  5
    7
    8
    2
    3

------解决思路----------------------
没有列用于排序的话,单步SQL语句解决不了。

SQL返回集不能点击,你要的这个功能要在前台程序中实现。

------解决思路----------------------

create table test (id int ) 
insert into test(id) values(5),(7),(7),(8),(8),(5),(7),(8),(2),(3),(4),(2)
go
with m as (
select ROW_NUMBER() over(order by getdate())  rn , * from test 
)
select ltrim(min(rn))  + '-' + ltrim(max(rn)) [c] , sum(id) [sum]
from m group by (rn -1) /5
go
-- 下面是展开语句,可以在程序里引用 
-- select * from m where rn between 6 and 10

drop table test 
go

(12 行受影响)
c                                                 sum
------------------------------------------------- -----------
1-5                                               35
6-10                                              25
11-12                                             6

(3 行受影响)


  相关解决方案