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 / 25514 < prev    next >
Text File  |  2010-06-15  |  2KB  |  71 lines

  1. CREATE PROCEDURE [dbo].[ISA_spMalwareSitesDurationRDL]
  2.     @FromDate datetime,
  3.     @ToDate datetime,
  4.     @ReportType varchar(10),
  5.     @TopCount int
  6. AS
  7. BEGIN
  8.     DECLARE @SummTableName varchar(100)
  9.     SET @SummTableName = dbo.fnGetSummaryTableName('tblSiteSummary', @FromDate, @ToDate, @ReportType)
  10.     CREATE TABLE #Table1
  11.     (
  12.         Site varchar(2048),
  13.         AverageMalwareInspectionDuration bigint,
  14.         Requests bigint
  15.     )
  16.     CREATE TABLE #Table2
  17.     (
  18.         Site varchar(2048),
  19.         AverageMalwareInspectionDuration bigint,
  20.         Requests bigint
  21.     )
  22.     IF OBJECT_ID (@SummTableName, 'u') IS NOT NULL
  23.     BEGIN
  24.         DECLARE @strQuery varchar(8000)
  25.         SET @strQuery =
  26.         'SELECT
  27.             [Site] AS Site,
  28.             SUM([MalwareInspectionDuration]) AS AverageMalwareInspectionDuration,
  29.             SUM([Requests]) AS Requests
  30.         FROM ' + @SummTableName + '
  31.         WHERE ([date] >= ' + QUOTENAME(CONVERT(varchar, @FromDate, 126),CHAR(39)) + ' AND [date] <= ' + QUOTENAME(CONVERT(varchar, @ToDate, 126),CHAR(39)) + ')
  32.               AND ([MalwareInspectionDuration] > 0)
  33.         GROUP BY [Site]
  34.         '
  35.         INSERT #Table2
  36.         EXEC(@strQuery)
  37.     END
  38.     INSERT INTO #Table1
  39.     SELECT *
  40.     FROM #Table2
  41.     WHERE [Requests] > 0
  42.     ORDER BY CAST([AverageMalwareInspectionDuration] AS decimal)/[Requests] DESC
  43.     DECLARE @TotalRequests bigint
  44.     SET @TotalRequests = (SELECT SUM([Requests]) FROM #Table1)
  45.     IF (@TotalRequests = 0)
  46.         SET @TotalRequests = 1
  47.     SELECT TOP(@TopCount)
  48.         Site,
  49.         CAST([AverageMalwareInspectionDuration] AS decimal)/[Requests] AS InspectionDuration,
  50.         [Requests] AS Requests,
  51.         (CAST([Requests] AS decimal) / @TotalRequests) AS RequestRatio
  52.     FROM #Table1
  53.     WHERE [Site] != N'{[23124]}'
  54.     UNION ALL
  55.     SELECT
  56.         N'{[23124]}' As Site,
  57.         CASE
  58.             WHEN (SUM(Requests) > 0) THEN CAST(SUM([AverageMalwareInspectionDuration]) AS decimal)/SUM([Requests])
  59.             ELSE 0
  60.         END AS InspectionDuration,
  61.         SUM([Requests]),
  62.         (CAST(SUM([Requests]) AS decimal) / @TotalRequests) AS RequestRatio
  63.     FROM #Table1 t1
  64.     WHERE NOT EXISTS
  65.         (SELECT * FROM
  66.            (SELECT TOP(@TopCount) *
  67.             FROM #Table1
  68.             WHERE [Site] != N'{[23124]}') t2
  69.             WHERE t1.Site = t2.Site)
  70. END
  71.