Đầu tiên hãy nhận xét khai báo @USERNAME trong BEGIN
ban đầu khối
-- DECLARE @USERNAME varchar(110)
sau đó xử lý NULL
giá trị cho USERNAME
như trong SELECT * INTO
khối
ISNULL(b.first_Name, '') + ' ' + ISNULL(b.last_name, '') AS USERNAME
Sau đó, thêm @USERNAME
trong CURSOR với tư cách là
DECLARE Cur_1 CURSOR
FOR SELECT CUser_id, User_Id, USERNAME FROM #temptable
OPEN Cur_1
DECLARE @CUser_id INT
DECLARE @User_Id INT
DECLARE @USERNAME VARCHAR (200) -- can set your required length
FETCH NEXT FROM Cur_1
INTO @CUser_id, @User_Id
Sau đó, @USERNAME
sẽ không ném NULL
lỗi
CẬP NHẬT :Dựa trên nhận xét của bạn, tôi đã cập nhật câu trả lời:
Vì vậy, bạn muốn lấy @USERNAME
dựa trên U_datetime >= @As_ONDATE
điều kiện.
Vì vậy, hãy sử dụng mã hiện có của bạn và thêm một khối nữa bên trong CURSOR để nhận @USERNAME
giá trị sau SELECT @REPORTDATE = U_datetime FROM inward_doc_tracking_trl where U_datetime >= @As_ONDATE
SELECT @USERNAME = ISNULL(b.first_Name, '') + ' ' + ISNULL(b.last_name, '') -- no need of column alias here
FROM inward_doc_tracking_trl a
INNER JOIN user_mst b on a.CUser_id = b.mkey
WHERE a.U_datetime >= @As_ONDATE