导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

求SQL语句,或是存过程用游标也可以[比较的难]欢迎高手进来指点

RxitRose 2003-12-25 09:47:15
有一张表A如下字段
号码ID,单位id,状态

其中号码ID 是有规律的,它肯定是从第一个号到20个号是连续的也就是一段一段的
1-20,21-40,41-60,81-100
但表中是这样显示的比如
号码ID 单位id 状态
1 1 0
2 1 0
. . .
20 1 0
21 2 0
. . .
40 2 0
41 3 0
. . .
60 3 0
81 4 0
. . .
100 4 0
---------------------------------------
我想得到的结果是
开始号码 结束号码 单位id 状态
1 20 1 0
21 40 2 0
41 61 3 0
81 100 4 0
-------------------------------------
是每格20个为一组的
用SQL语句能办到吗?
求SQL语句,或是存过程用游标也可以
...全文
5 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
RxitRose 2003-12-25
各位兄弟谢谢你们的精彩的SQL语句,但现在发生了变化
就是说所有的记录中的单位和状态都是一样的
记录如下
1-20
22-25
26-80
80-81
83-100
.............
就是说记录号是连续的就为一组
回复
ghosthjt 2003-12-25
select min(号码ID) as 开始号,max(号码ID) as 结束号,单位,状态 from 表A group by 单位,状态
回复
sunpower99 2003-12-25
--分组即可

select min(号码ID) as '开始号码',max(号码ID)as '结束号码',单位id,状态 from 表A
group by 单位id,状态
回复
victorycyz 2003-12-25
状态一栏全都一样?
回复
shuiniu 2003-12-25
--这样
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 行)
*/
回复
RxitRose 2003-12-25
我想得到的结果是
开始号码 结束号码 单位id 状态
1 20 1 0
21 40 2 0
41 61 3 0
81 100 4 0
-------------------------------------
是每格20个为一组的
用SQL语句能办到吗?
求SQL语句,或是存过程用游标也可以
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告