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

  1. CREATE PROCEDURE [dbo].[ISA_spUserSummaryMonthly]
  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
  11.         [UserName] AS [UserName],
  12.         SUM([BytesOut]) AS [BytesOut],
  13.         SUM([BytesIn]) AS [BytesIn],
  14.         SUM([TotalBytes]) AS [TotalBytes],
  15.         SUM([Requests]) AS [Requests],
  16.         SUM([AuthorizedFailures]) AS [AuthorizedFailures],
  17.         SUM([WebBytesOut]) AS [WebBytesOut],
  18.         SUM([WebBytesIn]) AS [WebBytesIn],
  19.         SUM([WebTotalBytes]) AS [WebTotalBytes],
  20.         SUM([WebRequests]) AS [WebRequests],
  21.         @CurrentMonthFirstDay AS [Date]
  22.     INTO #TableOrig
  23.     FROM dbo.tblUserSummary_Daily
  24.     WHERE (Date >= @CurrentMonthFirstDay) AND
  25.           (Date <= @CurrentMonthLastDay)
  26.     GROUP BY
  27.         [UserName]
  28.     -- create #table1 empty table copy
  29.     SELECT TOP(0) * INTO #Table1 FROM #TableOrig
  30.     DECLARE @SQLString1 nvarchar(2000) =
  31.     'SELECT *
  32.     FROM (
  33.         SELECT
  34.             [UserName], [BytesOut], [BytesIn], [TotalBytes], [Requests], [AuthorizedFailures], [WebBytesOut], [WebBytesIn], [WebTotalBytes], [WebRequests],[Date]
  35.         FROM (
  36.             SELECT
  37.                 [UserName], [BytesOut], [BytesIn], [TotalBytes], [Requests], [AuthorizedFailures], [WebBytesOut], [WebBytesIn], [WebTotalBytes], [WebRequests], [Date],
  38.                 ROW_NUMBER() OVER (ORDER BY '
  39.     DECLARE @SQLString2 nvarchar(2000) =
  40.                     ' DESC) AS rownum
  41.             FROM #TableOrig
  42.             WHERE [UserName] != N''{[23124]}'' AND '
  43.     DECLARE @SQLString3 nvarchar(2000) =
  44.             ' > 0 ) t
  45.         WHERE rownum <= 5000
  46.     ) ttt
  47.     WHERE [UserName] IS NOT NULL
  48.           AND NOT EXISTS (SELECT *
  49.                           FROM #Table1
  50.                           WHERE ttt.[UserName] = [UserName])'
  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]), @CurrentMonthFirstDay
  109.     FROM #TableOrig ttt
  110.     WHERE
  111.         NOT EXISTS (SELECT *
  112.                     FROM #Table1
  113.                     WHERE ttt.[UserName] = [UserName])
  114.     INSERT INTO dbo.tblUserSummary_Monthly
  115.     SELECT *
  116.     FROM #Table1
  117. -- cleanup dailies
  118.     DELETE FROM [ISA_RS_Db].[dbo].[tblUserSummary_Daily]
  119.     WHERE (Date < @LastDailyToKeep)
  120. -- cleanup monthlies
  121.     DELETE FROM [ISA_RS_Db].[dbo].[tblUserSummary_Monthly]
  122.     WHERE (Date < @LastMonthlyToKeep)
  123. END
  124.