多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > 一個根據列的范圍分組匯總的Sql存儲過程

一個根據列的范圍分組匯總的Sql存儲過程

來源:程序員人生   發布時間:2014-04-12 08:24:31 閱讀次數:2860次
1.需求說明

有如下表數據:

ID NUM
----------- -----------
1 2
2 3
3 2
4 2
5 12
6 2
7 1
8 5
9 1
10 1
11 1

輸入分組參數,比如輸入 "2,5,8,10" ,實現按 ID<=2,2<ID<=5,5<ID<=8,8<ID<=10,ID>10 分組查詢,要得到下面的數據:

groupdata num
---------- -----------
id<=2 5
2<id<=5 16
5<id<=8 8
8<id<=10 2
id>10 1

2.存儲過程如下:

--測試數據

create table TestData(ID int,NUM int)

insert TestData select 1,2

union all select 2,3

union all select 3,2

union all select 4,2

union all select 5,12

union all select 6,2

union all select 7,1

union all select 8,5

union all select 9,1

union all select 10,1

union all select 11,1

go



create proc spgroupcol

@numlist varchar(1000)

as

set nocount on

declare @t table(id int identity,groupdata varchar(10),a int,b int)

declare @i int,@pnum varchar(10),@j int

select @i=charindex(',',@numlist)

,@pnum=left(@numlist,@i-1)

insert @t select 'id<='+@pnum,null,@pnum



while @i>=1

begin

select @numlist=substring(@numlist,@i+1,len(@numlist)-@i)

select @j=charindex(',',@numlist) ;

if @i=@j

begin

insert @t select @pnum+'<id<='+substring(@numlist,0,@i),@pnum,substring(@numlist,0,@i)

select @pnum=left(@numlist,@i-1);

end

else

begin

insert @t select @pnum+'<id<='+substring(@numlist,0,@i+1),@pnum,substring(@numlist,0,@i+1)

select @pnum=left(@numlist,@i);

end

select @i=charindex(',',@numlist) ;

end



insert @t select 'id>'+@numlist,@numlist,null

select b.groupdata,num=sum(a.num)

from TestData a,@t b

where case

when b.a is null then case when a.id<=b.b then 1 else 0 end

when b.b is null then case when a.id>b.a then 1 else 0 end

else case when a.id>b.a and a.id<=b.b then 1 else 0 end

end=1

group by b.groupdata

order by min(b.id)

go



spgroupcol '2,5,8,10'

drop table TestData

sql存儲過程的單步調試要在Vs2008中,服務器管理器中連接上數據庫,找到存儲過程右鍵單步調試。

轉自:http://www.cnblogs.com/carysun/
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本与大黑人xxxx | 欧美一级毛片欧美一级成人毛片 | 免费爱爱网站 | 成人免费一区二区三区在线观看 | 亚洲伊人久久在 | 欧美激情一区二区三区在线 | 国产欧美另类久久久精品免费 | 看性过程三级视频在线观看 | 国产日韩高清一区二区三区 | 亚洲精品一区专区 | 欧美日韩在线第一页 | www操操操| 亚洲欧美一区二区视频 | 欧美黑人巨大性极品hd | 最新欧美一级视频 | 最新国产福利 | 夜夜骑狠狠干 | 亚洲综合精品一二三区在线 | 亚洲国产成人久久一区二区三区 | 456亚洲人成影院在线观 | 手机看片福利日韩欧美看片 | 在线观看日本永久免费视频 | 我爱我色成人网 | 成人欧美精品久久久久影院 | 久久色亚洲 | 亚洲视频h | 黄色大全免费看 | 国产中文欧美 | 欧美人成在线 | 国产精欧美一区二区三区 | 色婷婷影院在线视频免费播放 | 国产精品所毛片视频 | 大学生一级一片第一次免费 | 欧美日韩视频一区二区三区 | 在线国产毛片 | 精品国产人成亚洲区 | 在线看亚洲 | 久草在线播放视频 | 成年人视频在线观看免费 | 国产精品久久毛片蜜月 | 欧美中文字幕一区 |