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

  1. CREATE PROCEDURE [dbo].[ISA_spUrlfUsersRDL]
  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('tblUrlfUserSummary', @FromDate, @ToDate, @ReportType)
  10.     CREATE TABLE #Table1
  11.     (
  12.         UserName nvarchar(514),
  13.         UrlfIncidents bigint
  14.     );
  15.     IF OBJECT_ID (@SummTableName, 'u') IS NOT NULL
  16.     BEGIN
  17.         DECLARE @strQuery varchar(8000)
  18.         SET @strQuery =
  19.         'SELECT
  20.             UserName,
  21.             SUM(UrlfIncidents) AS UrlfIncidents
  22.         FROM ' + @SummTableName + '
  23.         WHERE ([date] >= ' + QUOTENAME(CONVERT(varchar, @FromDate, 126),CHAR(39)) + ' AND [date] <= ' + QUOTENAME(CONVERT(varchar, @ToDate, 126),CHAR(39)) + ')
  24.         GROUP BY [UserName]
  25.         ORDER BY SUM(UrlfIncidents)  DESC;
  26.         '
  27.         INSERT #Table1
  28.         EXEC(@strQuery)
  29.     END
  30.     CREATE TABLE #Table2
  31.     (
  32.         UserName nvarchar(514),
  33.         UrlfIncidents bigint
  34.     );
  35.     INSERT INTO #Table2
  36.     SELECT TOP(@TopCount)
  37.         UserName AS UserName,
  38.         UrlfIncidents AS UrlfIncidents
  39.     FROM #Table1
  40.     INSERT INTO #Table2
  41.     SELECT
  42.         N'{[23124]}' AS UserName,
  43.         SUM(UrlfIncidents) AS UrlfIncidents
  44.     FROM #Table1 t1
  45.     WHERE NOT EXISTS
  46.         (SELECT * FROM
  47.            (SELECT TOP(@TopCount) *
  48.             FROM #Table1) t2
  49.             WHERE t1.UserName = t2.UserName)
  50.     DECLARE @TotalUrlfIncidents bigint
  51.     SET @TotalUrlfIncidents = (SELECT SUM(UrlfIncidents) FROM #Table2)
  52.     IF (@TotalUrlfIncidents = 0)
  53.         SET @TotalUrlfIncidents = 1
  54.     SELECT
  55.         [dbo].[fnUserOrIpAddressToText]([UserName]) AS [UserName],
  56.         [UrlfIncidents] AS Requests,
  57.         (CAST([UrlfIncidents] AS decimal) / @TotalUrlfIncidents) AS RequestRatio
  58.     FROM #Table2
  59. END
  60.