我想得到的结果是
开始号码 结束号码 单位id 状态
1 20 1 0
21 40 2 0
41 61 3 0
81 100 4 0
-------------------------------------
是每格20个为一组的
用SQL语句能办到吗?
求SQL语句,或是存过程用游标也可以
开始号码 结束号码 单位id 状态
1 20 1 0
21 40 2 0
41 61 3 0
81 100 4 0
-------------------------------------
是每格20个为一组的
用SQL语句能办到吗?
求SQL语句,或是存过程用游标也可以
declare @tablea table (号码 int,单位 int ,状态 int)
insert @Tablea values(1,1,0)
insert @Tablea values(20,1,0)
insert @Tablea values(21,2,0)
insert @Tablea values(40,2,0)
insert @Tablea values(41,3,0)
insert @Tablea values(60,3,0)
insert @Tablea values(61,4,0)
insert @Tablea values(80,4,0)
insert @Tablea values(81,5,0)
insert @Tablea values(100,5,0)
select min(号码) 开始号码,max(号码) 结束号码,单位,状态
from @tablea
group by 单位,状态/*
开始号码 结束号码 单位 状态
----------- ----------- ----------- -----------
1 20 1 0
21 40 2 0
41 60 3 0
61 80 4 0
81 100 5 0(所影响的行数为 5 行)
*/
group by 单位id,状态
就是说所有的记录中的单位和状态都是一样的
记录如下
1-20
22-25
26-80
80-81
83-100
.............
就是说记录号是连续的就为一组