home *** CD-ROM | disk | FTP | other *** search
/ moodle.waes.ac.uk / moodle.waes.ac.uk.zip / moodle.waes.ac.uk / TMG / SP1-TMG-KB981324-AMD64-ENU.msp / PCW_CAB_SHFx2 / F2143_msfpcui.dll / BINARY / 25073 < prev    next >
Text File  |  2010-06-15  |  3KB  |  87 lines

  1. CREATE PROCEDURE [dbo].[ISA_spProtocolSummaryMonthly]
  2.     @CurrentMonthFirstDay datetime,
  3.     @CurrentMonthLastDay datetime,
  4.     @LastDailyToKeep datetime,
  5.     @LastMonthlyToKeep datetime
  6. AS
  7. BEGIN
  8.     SET NOCOUNT ON;
  9. -- move dailies to monthlies
  10.     SELECT [Protocol] AS [Protocol],
  11.             SUM([BytesIn]) AS [BytesIn],
  12.             SUM([BytesOut]) AS [BytesOut],
  13.             SUM([TotalBytes]) AS [TotalBytes],
  14.             SUM([Requests]) AS [Requests],
  15.             [LogType] AS [LogType],
  16.             @CurrentMonthFirstDay AS [Date]
  17.     INTO #TableOrig
  18.     FROM dbo.tblProtocolSummary_Daily
  19.     WHERE (Date >= @CurrentMonthFirstDay) AND
  20.           (Date <= @CurrentMonthLastDay)
  21.     GROUP BY
  22.             [Protocol],
  23.             [LogType]
  24.     -- create #table1 empty table copy
  25.     SELECT TOP(0) * INTO #Table1 FROM #TableOrig
  26.     DECLARE @SQLString1 nvarchar(2000) =
  27.     'SELECT *
  28.     FROM (
  29.         SELECT
  30.             [Protocol], [BytesIn], [BytesOut], [TotalBytes], [Requests], [LogType], [Date]
  31.         FROM (
  32.             SELECT
  33.                 [Protocol], [BytesIn], [BytesOut], [TotalBytes], [Requests], [LogType], [Date],
  34.                 ROW_NUMBER() OVER (PARTITION BY [LogType] ORDER BY '
  35.     DECLARE @SQLString2 nvarchar(2000) =
  36.                     ' DESC) AS rownum
  37.             FROM #TableOrig
  38.             WHERE [Protocol] != N''{[23124]}'' AND '
  39.     DECLARE @SQLString3 nvarchar(2000) =
  40.             ' > 0) t
  41.         WHERE rownum <= 5000
  42.     ) ttt
  43.     WHERE [Protocol] IS NOT NULL
  44.           AND NOT EXISTS (SELECT * FROM #Table1
  45.                           WHERE ttt.[Protocol] = [Protocol] AND
  46.                                 ttt.[LogType] = [LogType] )'
  47.     DECLARE @SQLString nvarchar(4000)
  48.     DECLARE @OrderString nvarchar(200)
  49.     SET @OrderString = '[TotalBytes]'
  50.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  51.     PRINT @SQLString
  52.     INSERT INTO #Table1
  53.     EXECUTE(@SQLString)
  54.     SET @OrderString = '[Requests]';
  55.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  56.     INSERT INTO #Table1
  57.     EXECUTE(@SQLString)
  58.     SET @OrderString = '[BytesIn]';
  59.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  60.     INSERT INTO #Table1
  61.     EXECUTE(@SQLString)
  62.     SET @OrderString = '[BytesOut]';
  63.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  64.     INSERT INTO #Table1
  65.     EXECUTE(@SQLString)
  66.     ---- now add tail
  67.     INSERT INTO #TABLE1
  68.     SELECT
  69.         N'{[23124]}', SUM([BytesIn]), SUM([BytesOut]), SUM([TotalBytes]), SUM([Requests]), [LogType], @CurrentMonthFirstDay
  70.     FROM #TableOrig ttt
  71.     WHERE
  72.         NOT EXISTS (SELECT *
  73.                     FROM #Table1
  74.                     WHERE ttt.[Protocol] = [Protocol] AND
  75.                         ttt.[LogType] = [LogType])
  76.     GROUP BY [LogType]
  77.     INSERT INTO [tblProtocolSummary_Monthly]
  78.     SELECT *
  79.     FROM #TABLE1
  80. -- cleanup dailies
  81.     DELETE FROM [ISA_RS_Db].[dbo].[tblProtocolSummary_Daily]
  82.     WHERE (Date < @LastDailyToKeep)
  83. -- cleanup monthlies
  84.     DELETE FROM [ISA_RS_Db].[dbo].[tblProtocolSummary_Monthly]
  85.     WHERE (Date < @LastMonthlyToKeep)
  86. END
  87.