--定义游标
declare 游标名 cursor for select name from sysobjects--打开游标
open 游标名--读取
fetch next from 游标名 into 变量名--判断读取是否成功
while @@fetch_status=0
begin
--循环处理,
--你的处理语句 --读取下一条
fetch next from 游标名 into 变量名
end--关闭游标
close 游标名--释放游标资源( 楼主写这句了吗? )
deallocate 游标名
declare 游标名 cursor for select name from sysobjects--打开游标
open 游标名--读取
fetch next from 游标名 into 变量名--判断读取是否成功
while @@fetch_status=0
begin
--循环处理,
--你的处理语句 --读取下一条
fetch next from 游标名 into 变量名
end--关闭游标
close 游标名--释放游标资源( 楼主写这句了吗? )
deallocate 游标名
drop table [dbo].[#tmpRibao]declare @cardate varchar(255)create table #tmpRibao(
carway char(20),
[1hour] float,
[2hour] float,
[3hour] float,
[4hour] float,
[5hour] float,
[6hour] float,
[7hour] float,
[8hour] float,
[9hour] float,
[10hour] float,
[11hour] float,
[12hour] float,
[13hour] float,
[14hour] float,
[15hour] float,
[16hour] float,
[17hour] float,
[18hour] float,
[19hour] float,
[20hour] float,
[21hour] float,
[22hour] float,
[23hour] float,
[24hour] float,
[cardate] varchar(255))declare cardate_cursor CURSOR FOR select distinct [caryear]+[carmonth]+[carday] from ribao
open cardate_cursorFETCH NEXT FROM cardate_cursor
INTO @cardate
BEGINinsert into #tmpRibao
select carway,[1hour],[2hour],[3hour],[4hour],[5hour],[6hour],[7hour],
[8hour],[9hour],[10hour],[11hour],[12hour],[13hour],[14hour],[15hour],
[16hour],[17hour],[18hour],[19hour],[20hour],[21hour],[22hour],[23hour],[24hour],
[cardate]= [caryear] + '年' + [carmonth] + '月' + [carday] + '日'
from ribao where [caryear] + [carmonth]+[carday]=@cardateinsert into #tmpRibao
SELECT distinct carway='上行',
[1hour]=(select [1hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [1hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[2hour]=(select [2hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [2hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[3hour]=(select [3hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [3hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[4hour]=(select [4hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [4hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[5hour]=(select [5hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [5hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[6hour]=(select [6hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [6hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[7hour]=(select [7hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [7hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[8hour]=(select [8hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [8hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[9hour]=(select [9hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [9hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[10hour]=(select [10hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [10hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[11hour]=(select [11hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [11hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[12hour]=(select [12hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [12hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[13hour]=(select [13hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [13hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[14hour]=(select [14hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [14hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[15hour]=(select [15hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [15hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[16hour]=(select [16hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [16hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[17hour]=(select [17hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [17hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[18hour]=(select [18hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [18hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[19hour]=(select [19hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [19hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[20hour]=(select [20hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [20hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[21hour]=(select [21hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [21hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[22hour]=(select [22hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [22hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[23hour]=(select [23hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [23hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[24hour]=(select [24hour] from ribao where carway='1车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [24hour] from ribao where carway='2车道' and [caryear] + [carmonth]+[carday]=@cardate),
[cardate]=caryear + '年' + carmonth + '月' + carday + '日'
FROM dbo.ribao where [caryear] + [carmonth]+[carday]=@cardate
SELECT distinct carway='下行',
[1hour]=(select [1hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [1hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[2hour]=(select [2hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [2hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[3hour]=(select [3hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [3hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[4hour]=(select [4hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [4hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[5hour]=(select [5hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [5hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[6hour]=(select [6hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [6hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[7hour]=(select [7hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [7hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[8hour]=(select [8hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [8hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[9hour]=(select [9hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [9hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[10hour]=(select [10hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [10hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[11hour]=(select [11hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [11hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[12hour]=(select [12hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [12hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[13hour]=(select [13hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [13hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[14hour]=(select [14hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [14hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[15hour]=(select [15hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [15hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[16hour]=(select [16hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [16hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[17hour]=(select [17hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [17hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[18hour]=(select [18hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [18hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[19hour]=(select [19hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [19hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[20hour]=(select [20hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [20hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[21hour]=(select [21hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [21hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[22hour]=(select [22hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [22hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[23hour]=(select [23hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [23hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[24hour]=(select [24hour] from ribao where carway='3车道' and [caryear] + [carmonth]+[carday]=@cardate)+
(select [24hour] from ribao where carway='4车道' and [caryear] + [carmonth]+[carday]=@cardate),
[cardate]= [caryear] + '年' + [carmonth] + '月' + [carday] + '日'
FROM dbo.ribao where [caryear] + [carmonth]+[carday]=@cardateinsert into #tmpRibao
SELECT distinct carway='总路况',
[1hour]=(select sum([1hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[2hour]=(select sum([2hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[3hour]=(select sum([3hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[4hour]=(select sum([4hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[5hour]=(select sum([5hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[6hour]=(select sum([6hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[7hour]=(select sum([7hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[8hour]=(select sum([8hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate ),
[9hour]=(select sum([9hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[10hour]=(select sum([10hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate ),
[11hour]=(select sum([11hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[12hour]=(select sum([12hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[13hour]=(select sum([13hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[14hour]=(select sum([14hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[15hour]=(select sum([15hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[16hour]=(select sum([16hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[17hour]=(select sum([17hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate ),
[18hour]=(select sum([18hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[19hour]=(select sum([19hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[20hour]=(select sum([20hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[21hour]=(select sum([21hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[22hour]=(select sum([22hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate),
[23hour]=(select sum([23hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate ),
[24hour]=(select sum([24hour]) from ribao where [caryear] + [carmonth]+[carday]=@cardate ),
[cardate]= caryear + '年' + carmonth + '月' + carday + '日'
from ribao where [caryear] + [carmonth]+[carday]=@cardate FETCH NEXT FROM cardate_cursor
ENDCLOSE cardate_cursor
DEALLOCATE cardate_cursorselect * from #tmpRibao
GO
我觉得不应该吧,程序会有缺陷么?我按照标准格式写的啊,总是会释放不了,下次执行就总是取出以前的数据,然后就很多!
while @@fetch_status=0这句话很重要啊