首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

分组连续编制流水号

2012-10-16 
求助:分组连续编制流水号?我有一张表,表结构及数据信息如下:ID BH RS113 12213 20313 5要求结果如下表,主

求助:分组连续编制流水号?
我有一张表,表结构及数据信息如下:

ID BH RS
1 13 12
2 13 20
3 13 5

要求结果如下表,主要是JG字段例:
ID BH RS JG
1 13 12 1
1 13 12 2
............
1 13 12 12
2 13 20 13//注意这行
2 13 20 14
.............
2 13 20 32
3 13 5 33//注意这行
3 13 5 34
3 13 5 35
3 13 5 36
3 13 5 37

主要是想用SQL语句实现,不用游标或循环。
谢谢!

 

[解决办法]
row_number 就可以了吧
[解决办法]

SQL code
create table tb(ID int,BH int,RS int)insert into tb select 1,13,12 union  select 2,13,20 union  select 3,13,5 select a.*,JG=row_number() over(order by id)   from tb a,master..spt_values    where type='P' and a.RS>number/*ID          BH          RS          JG----------- ----------- ----------- -------1           13          12          11           13          12          21           13          12          31           13          12          41           13          12          5.......
[解决办法]
探讨

SQL code
create table tb(ID int,BH int,RS int)
insert into tb
select 1,13,12 union
select 2,13,20 union
select 3,13,5

select a.*,JG=row_number() over(order by id)
from tb a,master..spt_val……

[解决办法]
SQL code
--> 测试数据:[tb]IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]GO CREATE TABLE [tb]([ID] INT,[BH] INT,[RS] INT)INSERT [tb]SELECT 1,13,12 UNION ALLSELECT 2,13,20 UNION ALLSELECT 3,13,5--------------开始查询--------------------------SELECT a.*,ROW_NUMBER() OVER(ORDER BY GETDATE()) FROM [tb] AS a  OUTER APPLY    (        SELECT number FROM master..spt_values WHERE type='p' AND number< [RS]    ) AS opit----------------结果----------------------------/* ID    BH    RS    (无列名)1    13    12    11    13    12    21    13    12    31    13    12    41    13    12    51    13    12    61    13    12    71    13    12    81    13    12    91    13    12    101    13    12    111    13    12    122    13    20    132    13    20    142    13    20    152    13    20    162    13    20    172    13    20    182    13    20    192    13    20    202    13    20    212    13    20    222    13    20    232    13    20    242    13    20    252    13    20    262    13    20    272    13    20    282    13    20    292    13    20    302    13    20    312    13    20    323    13    5    333    13    5    343    13    5    353    13    5    363    13    5    37*/ 

热点排行