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

  1. CREATE PROCEDURE [dbo].[ISA_spSoftBlockSitesRDL]
  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('tblSoftBlockSummary', @FromDate, @ToDate, @ReportType)
  10.     CREATE TABLE #Table1
  11.     (
  12.         Site varchar(2048),
  13.         UrlCategoryName nvarchar(255),
  14.         Users bigint,
  15.         Requests bigint
  16.     )
  17.     IF OBJECT_ID (@SummTableName, 'u') IS NOT NULL
  18.     BEGIN
  19.         CREATE TABLE #CompactUsers
  20.         (
  21.             Site varchar(2048),
  22.             UrlCategoryName nvarchar(255),
  23.             UserName nvarchar(514),
  24.             Requests bigint
  25.         )
  26.         DECLARE @strQuery varchar(8000)
  27.         SET @strQuery =
  28.         'SELECT DISTINCT
  29.             summary.[Site] AS [Site],
  30.             urlMeta.[URLCategoryName] AS [URLCategoryName],
  31.             summary.[UserName] AS [UserName],
  32.             SUM(summary.[Requests]) AS [Requests]
  33.         FROM ' + @SummTableName + ' AS summary INNER JOIN [tblUrlfMetadata] AS urlMeta ON summary.[URLCategoryId] = urlMeta.[URLCategoryId]
  34.         WHERE (summary.[date] >= ' + QUOTENAME(CONVERT(varchar, @FromDate, 126),CHAR(39)) + ' AND summary.[date] <= ' + QUOTENAME(CONVERT(varchar, @ToDate, 126),CHAR(39)) + ')
  35.         GROUP BY [Site], [URLCategoryName], [UserName]
  36.         '
  37.         INSERT INTO #CompactUsers
  38.         EXEC(@strQuery)
  39.         INSERT INTO #Table1
  40.         SELECT DISTINCT
  41.             [Site],
  42.             [URLCategoryName],
  43.             COUNT(*) AS [Users],
  44.             SUM([Requests]) AS [Requests]
  45.         FROM #CompactUsers
  46.         GROUP BY [Site], [URLCategoryName]
  47.         ORDER BY [Requests] DESC
  48.     END
  49.     DECLARE @TotalRequests bigint
  50.     SET @TotalRequests = (SELECT SUM([Requests]) FROM #Table1)
  51.     IF (@TotalRequests = 0)
  52.         SET @TotalRequests = 1
  53.     SELECT TOP(@TopCount)
  54.         Site AS Site,
  55.         URLCategoryName AS UrlCategoryName,
  56.         Users AS Users,
  57.         Requests AS Requests,
  58.         (CAST([Requests] AS decimal) / @TotalRequests) AS RequestRatio
  59.     FROM #Table1
  60.     WHERE [Site] != N'{[23124]}'
  61.     UNION ALL
  62.     SELECT
  63.         N'{[23124]}' AS Site,
  64.         N' ' AS UrlCategoryName,
  65.         SUM([Users]) AS Users,
  66.         SUM([Requests]) AS Requests,
  67.         (CAST(SUM([Requests]) AS decimal) / @TotalRequests) AS RequestRatio
  68.     FROM #Table1 unprocessedData
  69.     WHERE NOT EXISTS
  70.     (
  71.         SELECT *
  72.         FROM
  73.         (
  74.             SELECT TOP(@TopCount) *
  75.             FROM #Table1
  76.             WHERE [Site] != N'{[23124]}'
  77.         ) processedData
  78.         WHERE
  79.         (
  80.             (unprocessedData.Site = processedData.Site) AND
  81.             (unprocessedData.URLCategoryName = processedData.URLCategoryName)
  82.         )
  83.     )
  84. END
  85.