Geef eerst commentaar op de @USERNAME-declaratie in de eerste BEGIN
blok
-- DECLARE @USERNAME varchar(110)
behandel vervolgens de NULL
waarde voor de USERNAME
zoals in de SELECT * INTO
blok
ISNULL(b.first_Name, '') + ' ' + ISNULL(b.last_name, '') AS USERNAME
Voeg vervolgens de @USERNAME
. toe in de CURSOR als
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
Dan de @USERNAME
gooit de NULL
niet weg fout
UPDATE :Op basis van uw opmerkingen heb ik het antwoord bijgewerkt:
Dus je wilt de @USERNAME
. krijgen gebaseerd op de U_datetime >= @As_ONDATE
staat.
Gebruik dus je bestaande code en voeg nog een blok toe in de CURSOR om de @USERNAME
te krijgen waarde zoals na de 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