请问我在游标里,怎么使用WITH AS ?如下:
declare curSchClass cursor
for select schName,StartTime,EndTime from d_EmployeeScheduling
where UserID=@UserID
open curSchClass
fetch next from curSchClass into
@schName,@StartTime,@EndTime
while @@FETCH_STATUS = 0
begin
;
WITH dt AS (
SELECT *,ROW_NUMBER()OVER(PARTITION BY [EnterOrOut] ORDER BY [date] )id
FROM d_Att
WHERE
convert(varchar(5),date,108) between convert(varchar(5),@CheckInTime1,108) and convert(varchar(5),@CheckOutTime2,108)
and convert(varchar(10),date,121) between convert(varchar(10),@sttime,121) and convert(varchar(10),@edtime,121)
)
......................................................
end
------解决方案--------------------
你的代码里是用了with dt as了,不过后面你的用select * from dt 就行了
------解决方案--------------------
大概的格式:
declare curSchClass cursor
for select schName,StartTime,EndTime from d_EmployeeScheduling
where UserID=@UserID
open curSchClass
fetch next from curSchClass into
@schName,@StartTime,@EndTime
while @@FETCH_STATUS = 0
begin
;WITH dt AS (
SELECT *,ROW_NUMBER()OVER(PARTITION BY [EnterOrOut] ORDER BY [date] )id
FROM d_Att
WHERE
convert(varchar(5),date,108) between convert(varchar(5),@CheckInTime1,108) and convert(varchar(5),@CheckOutTime2,108)
and convert(varchar(10),date,121) between convert(varchar(10),@sttime,121) and convert(varchar(10),@edtime,121)
)
select *
from dt
--继续取下一条数据
fetch next from curSchClass into
@schName,@StartTime,@EndTime
end
------解决方案--------------------
不能执行是报错还是没数据?
------解决方案--------------------
具体的代码呢
------解决方案--------------------

------解决方案--------------------
我这么多年开发经历里面就没用过一次游标用于实际情景,练手的时候用过一下而已