Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE PROCEDURE dbo.prerender_getwork @F_DIVISION INT, @N_PERIOD INT
- AS
- BEGIN
- DECLARE @DB VARCHAR(30)
- ,@LINK INT
- ,@D_Begin SMALLDATETIME
- ,@D_End SMALLDATETIME
- ,@Year INT
- ,@Month INT
- ,@tsqlCommand VARCHAR(MAX);
- SET @Year = FLOOR(@N_PERIOD / 100);
- SET @Month = @N_PERIOD - @Year * 100;
- SET @D_Begin = CAST(
- CAST(@Year AS VARCHAR(4)) +
- '/01/' +
- CAST(@Month AS VARCHAR(2))
- AS DATETIME);
- SET @D_End = DATEADD(mm, 1, @D_Begin);
- SELECT
- @DB = s.S_DB_Omnis
- ,@LINK = s.link
- FROM tgk.tgk.sprdivision s
- WHERE s.idnum = @F_DIVISION;
- SET @tsqlCommand = N'USE ' + CAST(@DB AS NVARCHAR) + N';
- SELECT TOP 100
- s.N_Code
- FROM SD_Subscr s
- WHERE
- s.F_Division = @LINKINT AND
- s.N_Code <> ''0'' AND
- (s.D_Date_End<@D_EndINT OR s.D_Date_End IS NULL)
- AND CAST(s.N_Code AS VARCHAR) NOT IN (SELECT p.s_account
- FROM tgk.dbo.prerender p
- WHERE
- p.N_Period < @N_PERIODINT AND
- p.f_division = @F_DIVISIONINT)'
- EXECUTE sys.sp_executesql @tsqlCommand, N'@F_DIVISIONINT INT, @N_PERIODINT INT, @LINKINT INT, @D_EndINT SMALLDATETIME', @F_DIVISIONINT=@F_DIVISION, @N_PERIODINT=@N_PERIOD, @LINKINT=@LINK, @D_EndINT=@D_End;
- END
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement