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

  1. CREATE PROCEDURE [dbo].[ISA_spUrlfCategoriesRDL]
  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('tblUrlfSummary', @FromDate, @ToDate, @ReportType)
  11.     DECLARE @OrderColumn varchar(100)
  12.     SET @OrderColumn =
  13.             CASE
  14.                 WHEN @SortOrder = 'Requests' THEN 'Requests'
  15.                 WHEN @SortOrder = 'BytesIn' THEN 'BytesIn'
  16.                 WHEN @SortOrder = 'BytesOut' THEN 'BytesOut'
  17.                 ELSE 'TotalBytes'
  18.             END;
  19.     CREATE TABLE #Table1
  20.     (
  21.         UrlCategory nvarchar(255),
  22.         Requests bigint,
  23.         BytesIn bigint,
  24.         BytesOut bigint,
  25.         TotalBytes bigint,
  26.     )
  27.     IF OBJECT_ID (@SummTableName, 'u') IS NOT NULL
  28.     BEGIN
  29.         DECLARE @strQuery varchar(8000)
  30.         SET @strQuery =
  31.         'SELECT
  32.             oo.UrlCategoryName AS UrlCategory,
  33.             SUM(o.Requests) AS Requests,
  34.             SUM(o.BytesIn) AS BytesIn,
  35.             SUM(o.BytesOut) AS BytesOut,
  36.             SUM(o.TotalBytes) AS TotalBytes
  37.         FROM ' + @SummTableName + ' AS o
  38.         INNER JOIN [tblUrlfMetadata] AS oo
  39.            ON o.[UrlCategoryId] = oo.[UrlCategoryId]
  40.         WHERE (o.[date] >= ' + QUOTENAME(CONVERT(varchar, @FromDate, 126),CHAR(39)) + ' AND o.[date] <= ' + QUOTENAME(CONVERT(varchar, @ToDate, 126),CHAR(39)) + ')
  41.             AND (o.[UrlCategoryId] >= 0)
  42.             AND  o.[Action] = 0
  43.         GROUP BY oo.UrlCategoryName
  44.         ORDER BY ' + QUOTENAME(@OrderColumn) + ' DESC;
  45.         '
  46.         INSERT #Table1
  47.         EXEC(@strQuery)
  48.     END
  49.     DECLARE @TotalRequests bigint
  50.     SET @TotalRequests = (SELECT SUM(Requests) FROM #Table1)
  51.     IF (@TotalRequests = 0)
  52.         SET @TotalRequests = 1
  53.     DECLARE @totalBytes bigint
  54.     SET @totalBytes = (SELECT SUM(TotalBytes) FROM #Table1)
  55.     IF (@totalBytes = 0)
  56.         SET @totalBytes = 1
  57.     DECLARE @TotalBytesIn bigint
  58.     SET @TotalBytesIn = (SELECT SUM(BytesIn) FROM #Table1)
  59.     IF (@TotalBytesIn = 0)
  60.         SET @TotalBytesIn = 1
  61.     DECLARE @TotalBytesOut bigint
  62.     SET @TotalBytesOut = (SELECT SUM(BytesOut) FROM #Table1)
  63.     IF (@TotalBytesOut = 0)
  64.         SET @TotalBytesOut = 1
  65.     SELECT TOP(@TopCount)
  66.         UrlCategory,
  67.         Requests,
  68.         (CAST(Requests AS decimal) / @TotalRequests) AS RequestRatio,
  69.         BytesIn AS BytesIn,
  70.         (CAST(BytesIn AS decimal) / @TotalBytesIn) AS BytesInRatio,
  71.         BytesOut AS BytesOut,
  72.         (CAST(BytesOut AS decimal) / @TotalBytesOut) AS BytesOutRatio,
  73.         TotalBytes AS TotalBytes,
  74.         (CAST(TotalBytes AS decimal) / @totalBytes) AS TotalByteRatio
  75.     FROM #Table1
  76.     UNION ALL
  77.     SELECT
  78.         N'{[23124]}' AS UrlCategory,
  79.         SUM(Requests),
  80.         (CAST(SUM(Requests) AS decimal) / @TotalRequests) AS RequestRatio,
  81.         SUM([BytesIn]),
  82.         (CAST(SUM([BytesIn]) AS decimal) / @TotalBytesIn) AS BytesInRatio,
  83.         SUM([BytesOut]),
  84.         (CAST(SUM([BytesOut]) AS decimal) / @TotalBytesOut) AS BytesOutRatio,
  85.         SUM([TotalBytes]) AS TotalBytes,
  86.         (CAST(SUM([TotalBytes]) AS decimal) / @totalBytes) AS TotalByteRatio
  87.     FROM #Table1 t1
  88.     WHERE NOT EXISTS
  89.         (SELECT * FROM
  90.            (SELECT TOP(@TopCount) *
  91.             FROM #Table1) t2
  92.             WHERE t1.UrlCategory = t2.UrlCategory)
  93. END
  94.