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 / 25188 < prev    next >
Text File  |  2010-06-15  |  3KB  |  87 lines

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