Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.15 KB | None | 0 0
  1. CREATE PROCEDURE dbo.prerender_getwork @F_DIVISION INT, @N_PERIOD INT
  2. AS
  3. BEGIN
  4. DECLARE @DB VARCHAR(30)
  5.              ,@LINK INT
  6.              ,@D_Begin SMALLDATETIME
  7.              ,@D_End SMALLDATETIME
  8.              ,@Year INT
  9.              ,@Month INT
  10.              ,@tsqlCommand VARCHAR(MAX);
  11. SET @Year = FLOOR(@N_PERIOD / 100);
  12. SET @Month = @N_PERIOD - @Year * 100;
  13.  
  14. SET @D_Begin = CAST(
  15.     CAST(@Year AS VARCHAR(4)) +
  16.     '/01/' +
  17.     CAST(@Month AS VARCHAR(2))
  18. AS DATETIME);
  19.  
  20. SET @D_End = DATEADD(mm, 1, @D_Begin);
  21.  
  22. SELECT
  23.     @DB = s.S_DB_Omnis
  24.  ,@LINK = s.link
  25. FROM tgk.tgk.sprdivision s
  26. WHERE s.idnum = @F_DIVISION;
  27.  
  28. SET @tsqlCommand = N'USE ' + CAST(@DB AS NVARCHAR) + N';
  29. SELECT TOP 100
  30.     s.N_Code
  31. FROM SD_Subscr s
  32. WHERE
  33.     s.F_Division = @LINKINT AND
  34.     s.N_Code <> ''0'' AND
  35.     (s.D_Date_End<@D_EndINT OR s.D_Date_End IS NULL)
  36.     AND CAST(s.N_Code AS VARCHAR) NOT IN (SELECT p.s_account
  37. FROM tgk.dbo.prerender p
  38.     WHERE
  39.         p.N_Period < @N_PERIODINT AND
  40.         p.f_division = @F_DIVISIONINT)'
  41. 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;
  42. END
  43. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement