如何 运行 在每个用户的游标中循环
How to run LOOP in a cursor for each user
我有一个 SP,它给了我两条记录(2 个用户名),如下所示
现在,
what I want is to loop each user using cursor
and display its data from the table for the date which is passed as in the parameter
下面是我的SP
ALTER PROCEDURE GET_USER_REPORT_DATA
@From_Date datetime,
@To_Date datetime
AS
BEGIN
Select * into #GetUserTable
from
(
select distinct a.N_UserMkey, b.mkey,
b.first_name + ' ' + b.last_name NAME from inward_doc_tracking_trl a inner join user_mst b on
a.N_UserMkey = b.mkey
where a.U_datetime between @From_Date and @To_Date
) as xx
DECLARE @N_Usermkey int, @mkey int, @NAME varchar
DECLARE UserCursor CURSOR FOR
select distinct a.N_UserMkey, b.mkey,
b.first_name + ' ' + b.last_name NAME from inward_doc_tracking_trl a inner join
user_mst b on a.N_UserMkey = b.mkey
where a.U_datetime between @From_Date and @To_Date
OPEN UserCursor
FETCH NEXT FROM vendor_cursor
INTO @N_Usermkey, @mkey, @NAME
-- need to run loop for each user
SELECT * FROM #GetUserTable
DROP TABLE #GetUserTable
END
开始
我不知道如何使用cursor
请告诉我
您根本不需要游标,您的简单 select 查询就足够了...
select a.N_UserMkey
,b.mkey
,ISNULL(b.first_name + ' ','') + ISNULL(b.last_name,'') NAME
from inward_doc_tracking_trl a
inner join user_mst b on a.N_UserMkey = b.mkey
where a.U_datetime between @From_Date and @To_Date
我有一个 SP,它给了我两条记录(2 个用户名),如下所示
现在,
what I want is to loop each user using
cursor
and display its data from the table for the date which is passed as in the parameter
下面是我的SP
ALTER PROCEDURE GET_USER_REPORT_DATA
@From_Date datetime,
@To_Date datetime
AS
BEGIN
Select * into #GetUserTable
from
(
select distinct a.N_UserMkey, b.mkey,
b.first_name + ' ' + b.last_name NAME from inward_doc_tracking_trl a inner join user_mst b on
a.N_UserMkey = b.mkey
where a.U_datetime between @From_Date and @To_Date
) as xx
DECLARE @N_Usermkey int, @mkey int, @NAME varchar
DECLARE UserCursor CURSOR FOR
select distinct a.N_UserMkey, b.mkey,
b.first_name + ' ' + b.last_name NAME from inward_doc_tracking_trl a inner join
user_mst b on a.N_UserMkey = b.mkey
where a.U_datetime between @From_Date and @To_Date
OPEN UserCursor
FETCH NEXT FROM vendor_cursor
INTO @N_Usermkey, @mkey, @NAME
-- need to run loop for each user
SELECT * FROM #GetUserTable
DROP TABLE #GetUserTable
END
开始
我不知道如何使用cursor
请告诉我
您根本不需要游标,您的简单 select 查询就足够了...
select a.N_UserMkey
,b.mkey
,ISNULL(b.first_name + ' ','') + ISNULL(b.last_name,'') NAME
from inward_doc_tracking_trl a
inner join user_mst b on a.N_UserMkey = b.mkey
where a.U_datetime between @From_Date and @To_Date