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

  1. CREATE PROCEDURE [dbo].[ISA_spIpsTopProtocolsRDL]
  2.     @FromDate datetime,
  3.     @ToDate datetime,
  4.     @ReportType varchar(10),
  5.     @TopCount int,
  6.     @SortOrder varchar(100)
  7. AS
  8. BEGIN
  9.     DECLARE @SummTableName varchar(100)
  10.     SET @SummTableName = dbo.fnGetSummaryTableName('tblIpsSummary', @FromDate, @ToDate, @ReportType)
  11.     DECLARE @OrderColumn varchar(100)
  12.     SET @OrderColumn =
  13.             CASE
  14.                 WHEN @SortOrder = 'Requests' THEN 'Requests'
  15.                 ELSE 'TotalBytes'
  16.             END;
  17.     CREATE TABLE #Table1
  18.     (
  19.         [SignatureProtocol] nvarchar(4000),
  20.         [Requests] bigint,
  21.         [TotalBytes] bigint
  22.     )
  23.     IF OBJECT_ID (@SummTableName, 'u') IS NOT NULL
  24.     BEGIN
  25.         DECLARE @strQuery varchar(8000)
  26.         SET @strQuery =
  27.         'SELECT
  28.             [SignatureProtocol] AS [SignatureProtocol],
  29.             SUM([Requests]) AS [Requests],
  30.             SUM([TotalBytes]) AS [TotalBytes]
  31.          FROM
  32.             (SELECT
  33.                 o.[SignatureName] AS [SignatureName],
  34.                 oo.[SignatureProtocol]  AS [SignatureProtocol],
  35.                 o.[Incidents] AS [Requests],
  36.                 o.[TotalBytes] AS [TotalBytes]
  37.             FROM ' + @SummTableName + ' AS o
  38.             LEFT JOIN [tblIpsMetadata] AS oo
  39.                ON o.[SignatureName] = oo.[SignatureName]
  40.             WHERE
  41.                 ([Date] >= ' + QUOTENAME(CONVERT(varchar, @FromDate, 126),CHAR(39)) + ' AND [Date] <= ' + QUOTENAME(CONVERT(varchar, @ToDate, 126),CHAR(39)) + ')) as tbl
  42.         GROUP BY
  43.             [SignatureProtocol]
  44.         ORDER BY ' + QUOTENAME(@OrderColumn) + ' DESC;
  45.         '
  46.         INSERT #Table1
  47.         EXEC(@strQuery)
  48.     END
  49.     DECLARE @TotalBytes bigint
  50.     SET @TotalBytes = (SELECT SUM([TotalBytes]) FROM #Table1)
  51.     IF (@TotalBytes = 0)
  52.         SET @TotalBytes = 1
  53.     DECLARE @TotalIncidents bigint
  54.     SET @TotalIncidents = (SELECT SUM([Requests]) FROM #Table1)
  55.     IF (@TotalIncidents = 0)
  56.         SET @TotalIncidents = 1
  57.     SELECT TOP(@TopCount)
  58.         [SignatureProtocol] AS [SignatureProtocol],
  59.         [TotalBytes] AS [TotalBytes],
  60.         (CAST([TotalBytes] AS decimal) / @TotalBytes) AS [TotalBytesRatio],
  61.         [Requests] AS [Requests],
  62.         (CAST([Requests] AS decimal) / @TotalIncidents) AS [IncidentRatio]
  63.     FROM #Table1
  64.     UNION ALL
  65.     SELECT
  66.         N'{[23124]}' As [SignatureProtocol],
  67.         SUM([TotalBytes]) AS [TotalBytes],
  68.         (CAST(SUM([TotalBytes]) AS decimal) / @TotalBytes) AS [TotalBytesRatio],
  69.         SUM([Requests]) AS [Requests],
  70.         (CAST(SUM([Requests]) AS decimal) / @TotalIncidents) AS [IncidentRatio]
  71.     FROM #Table1 t1
  72.     WHERE NOT EXISTS
  73.         (SELECT * FROM
  74.            (SELECT TOP(@TopCount) *
  75.             FROM #Table1) t2
  76.             WHERE t1.[SignatureProtocol] = t2.[SignatureProtocol])
  77. END
  78.