DECLARE intezmenytanevekCursor CURSOR LOCAL FOR SELECT i.ID, t.ID FROM T_INTEZMENY i INNER JOIN T_TANEV t ON i.ID = t.C_INTEZMENYID WHERE t.TOROLT = 'F' AND i.TOROLT = 'F' AND t.C_AKTIV = 'T' DECLARE @intezmenyId int ,@tanevId int OPEN intezmenytanevekCursor FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'INTÉZMÉNY ID: ' + CAST(@intezmenyId AS NVARCHAR(10)) + ', TANÉV ID: ' + CAST(@tanevId AS NVARCHAR(10)) INSERT INTO T_FELHASZNALOBELEPES ( C_KOTELEZOVALTOZTATNI ,C_MEGHIUSULTBELEPESEK ,C_UTOLSOBELEPES ,C_JELSZO ,C_JELSZOVALTOZTATASIDEJE ,C_SO ,C_BEJELENTKEZESINEV ,C_NEPTUNNAPLOJELSZO ,C_GUID ,C_ISCSOKKENTETTGONDVISELO ,C_FELHASZNALOID ,C_GONDVISELOID ,C_INTEZMENYID ,C_TANEVID ,TOROLT ,SERIAL ,LASTCHANGED ,CREATED ,MODIFIER ,CREATOR ,ELOZOTANEVIREKORDID ,NNID ) SELECT 'F' AS C_KOTELEZOVALTOZTATNI ,NULL AS C_MEGHIUSULTBELEPESEK ,NULL AS C_UTOLSOBELEPES ,dbo.fnConvertBase64(HASHBYTES('SHA1', CONVERT(VARBINARY(MAX), CONVERT(NVARCHAR(MAX), Guid+RND)))) AS C_JELSZO ,NULL AS C_JELSZOVALTOZTATASIDEJE ,RND AS C_SO ,LoginName AS C_BEJELENTKEZESINEV ,NULL AS C_NEPTUNNAPLOJELSZO ,ISNULL(otherUserGuid, NEWID()) AS C_GUID ,'F' AS C_ISCSOKKENTETTGONDVISELO ,FelhasznaloId AS C_FELHASZNALOID ,GondviseloId AS C_GONDVISELOID ,@intezmenyId AS C_INTEZMENYID ,@tanevId AS C_TANEVID ,'F' AS TOROLT ,1 AS SERIAL ,GETDATE() AS LASTCHANGED ,GETDATE() AS CREATED ,NULL AS MODIFIER ,NULL AS CREATOR ,NULL AS ELOZOTANEVIREKORDID ,NULL AS NNID FROM ( SELECT fh.ID AS FelhasznaloId ,g.ID AS GondviseloId ,fh.C_OKTATASIAZONOSITO +'G'+ RIGHT('00' + CAST(ROW_NUMBER() OVER(PARTITION BY fh.C_OKTATASIAZONOSITO ORDER BY fh.ID) + ISNULL(mx, 0) AS nvarchar(6)),2) AS LoginName ,mx ,CAST((SELECT * FROM dbo.getRand) AS nvarchar(64)) AS RND ,LEFT(NEWID(), 8) Guid ,fbGuid.C_GUID otherUserGuid FROM T_GONDVISELO_OSSZES g INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = g.C_TANULOID AND fh.TOROLT = 'F' AND fh.C_INTEZMENYID = @intezmenyId AND fh.C_TANEVID = @tanevid LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.C_GONDVISELOID = g.ID AND fb.TOROLT = 'F' AND fb.C_GONDVISELOID IS NOT NULL AND fb.C_INTEZMENYID = @intezmenyId AND fb.C_TANEVID = @tanevid OUTER APPLY ( SELECT MAX(CAST(ISNULL(IIF(ISNUMERIC(RIGHT(fb.C_BEJELENTKEZESINEV, 2)) = 1, RIGHT(fb.C_BEJELENTKEZESINEV, 2), '00'), '00') AS int)) AS mx FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE (fb.C_BEJELENTKEZESINEV LIKE fh.C_OKTATASIAZONOSITO + '__' OR fb.C_BEJELENTKEZESINEV LIKE fh.C_OKTATASIAZONOSITO + 'G__') AND fb.C_INTEZMENYID = @intezmenyId AND fb.C_TANEVID = @tanevid AND fb.TOROLT = 'F' ) x LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fbGuid ON fbGuid.C_GONDVISELOID = g.ID AND fbGuid.TOROLT = 'F' AND fbGuid.C_GONDVISELOID IS NOT NULL WHERE g.C_INTEZMENYID = @intezmenyId AND g.C_TANEVID = @tanevId AND g.TOROLT = 'F' AND fb.ID IS NULL AND (NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE fh.ID = fb.C_FELHASZNALOID AND fb.C_GONDVISELOID is null) OR NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES fb WHERE fh.ID = fb.C_FELHASZNALOID AND fb.C_GONDVISELOID = g.ID)) )y FETCH NEXT FROM intezmenytanevekCursor INTO @intezmenyId, @tanevId END CLOSE intezmenytanevekCursor DEALLOCATE intezmenytanevekCursor GO