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 / 25198 < prev    next >
Text File  |  2010-06-15  |  5KB  |  121 lines

  1. CREATE PROCEDURE [dbo].[ISA_spTrimArrayUserSummary]
  2.     @FromDate datetime,
  3.     @ToDate   datetime
  4. AS
  5. BEGIN
  6.     SET NOCOUNT ON;
  7.     IF OBJECT_ID ('tblUserSummary_Daily', 'u') IS NULL
  8.         RETURN
  9.     -- create #table1 empty table copy
  10.     SELECT TOP(0) * INTO #Table1 FROM [tblUserSummary_Daily]
  11.     DELETE FROM [tblUserSummary_Daily]
  12.     OUTPUT DELETED.* INTO #Table1
  13.     WHERE ([Date] >= @FromDate) AND ([Date] < @ToDate)
  14.     SELECT UserName,
  15.         SUM([BytesOut]) AS BytesOut,
  16.         SUM([BytesIn]) AS BytesIn,
  17.         SUM([TotalBytes]) AS TotalBytes,
  18.         SUM([Requests]) AS Requests,
  19.         SUM([AuthorizedFailures]) AS AuthorizedFailures,
  20.         SUM([WebBytesOut]) AS WebBytesOut,
  21.         SUM([WebBytesIn]) AS WebBytesIn,
  22.         SUM([WebTotalBytes]) AS WebTotalBytes,
  23.         SUM([WebRequests]) AS WebRequests,
  24.         [Date] AS Date
  25.     INTO #TableOrig
  26.     FROM #Table1
  27.     GROUP BY [UserName], [Date]
  28.     TRUNCATE TABLE #Table1
  29.     DECLARE @SQLString1 nvarchar(2000) =
  30.     'SELECT *
  31.     FROM (
  32.         SELECT
  33.             [UserName], [BytesOut], [BytesIn], [TotalBytes], [Requests], [AuthorizedFailures], [WebBytesOut], [WebBytesIn], [WebTotalBytes], [WebRequests],[Date]
  34.         FROM (
  35.             SELECT
  36.                 [UserName], [BytesOut], [BytesIn], [TotalBytes], [Requests], [AuthorizedFailures], [WebBytesOut], [WebBytesIn], [WebTotalBytes], [WebRequests], [Date],
  37.                 ROW_NUMBER() OVER (PARTITION BY [Date] ORDER BY '
  38.     DECLARE @SQLString2 nvarchar(2000) =
  39.                     ' DESC) AS rownum
  40.             FROM #TableOrig
  41.             WHERE [UserName] != N''{[23124]}'' AND '
  42.     DECLARE @SQLString3 nvarchar(2000) =
  43.             ' > 0 ) t
  44.         WHERE rownum <= 5000
  45.     ) ttt
  46.     WHERE [UserName] IS NOT NULL
  47.           AND NOT EXISTS (SELECT *
  48.                           FROM #Table1
  49.                           WHERE ttt.[UserName] = [UserName] AND
  50.                                 ttt.[Date] = [Date])'
  51.     DECLARE @SQLString nvarchar(4000)
  52.     DECLARE @OrderString nvarchar(200)
  53.     SET @OrderString = '[AuthorizedFailures]'
  54.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  55.     INSERT INTO #Table1
  56.     EXECUTE(@SQLString);
  57.     SET @OrderString = '[Requests]'
  58.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  59.     INSERT INTO #Table1
  60.     EXECUTE(@SQLString);
  61.     SET @OrderString = '[TotalBytes]';
  62.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  63.     INSERT INTO #Table1
  64.     EXECUTE(@SQLString);
  65.     SET @OrderString = '[BytesIn]';
  66.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  67.     INSERT INTO #Table1
  68.     EXECUTE(@SQLString);
  69.     SET @OrderString = '[BytesOut]';
  70.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  71.     INSERT INTO #Table1
  72.     EXECUTE(@SQLString);
  73.     SET @OrderString = '[WebRequests]';
  74.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  75.     INSERT INTO #Table1
  76.     EXECUTE(@SQLString);
  77.     SET @OrderString = '[WebTotalBytes]';
  78.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  79.     INSERT INTO #Table1
  80.     EXECUTE(@SQLString);
  81.     SET @OrderString = '[WebBytesIn]';
  82.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  83.     INSERT INTO #Table1
  84.     EXECUTE(@SQLString);
  85.     SET @OrderString = '[WebBytesOut]';
  86.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  87.     INSERT INTO #Table1
  88.     EXECUTE(@SQLString);
  89.     SET @OrderString = '[Requests] - [WebRequests]';
  90.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  91.     INSERT INTO #Table1
  92.     EXECUTE(@SQLString);
  93.     SET @OrderString = '[TotalBytes] - [WebTotalBytes]';
  94.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  95.     INSERT INTO #Table1
  96.     EXECUTE(@SQLString);
  97.     SET @OrderString = '[BytesIn] - [WebBytesIn]';
  98.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  99.     INSERT INTO #Table1
  100.     EXECUTE(@SQLString);
  101.     SET @OrderString = '[BytesOut] - [WebBytesOut]';
  102.     SET @SQLString = @SQLString1 + @OrderString + @SQLString2 + @OrderString + @SQLString3;
  103.     INSERT INTO #Table1
  104.     EXECUTE(@SQLString);
  105.     ---- now add tail
  106.     INSERT INTO #TABLE1
  107.     SELECT
  108.         N'{[23124]}', SUM([BytesOut]), SUM([BytesIn]), SUM([TotalBytes]), SUM([Requests]), SUM([AuthorizedFailures]), SUM([WebBytesOut] ), SUM([WebBytesIn]), SUM([WebTotalBytes]), SUM([WebRequests]), [Date]
  109.     FROM #TableOrig ttt
  110.     WHERE
  111.         [Requests] IS NOT NULL AND
  112.         NOT EXISTS (SELECT *
  113.                     FROM #Table1
  114.                     WHERE ttt.[UserName] = [UserName] AND
  115.                         ttt.[Date] = [Date] )
  116.     GROUP BY [Date]
  117.     INSERT INTO [tblUserSummary_Daily]
  118.     SELECT *
  119.     FROM #TABLE1
  120. END
  121.