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

  1. CREATE PROCEDURE [dbo].[ISA_spTrimArraySoftBlockSummary]
  2.     @FromDate datetime,
  3.     @ToDate   datetime
  4. AS
  5. BEGIN
  6.     SET NOCOUNT ON;
  7.     IF OBJECT_ID ('tblSoftBlockSummary_Daily', 'u') IS NULL
  8.         RETURN
  9.     -- Move to #TrimmedSummaryEntries all relevant entries
  10.     SELECT TOP(0) * INTO #TrimmedSummaryEntries FROM [tblSoftBlockSummary_Daily]
  11.     DELETE FROM [tblSoftBlockSummary_Daily]
  12.     OUTPUT DELETED.* INTO #TrimmedSummaryEntries
  13.     WHERE ([Date] >= @FromDate) AND ([Date] < @ToDate)
  14.     -- Prepare to trimming: group, ignoring date
  15.     SELECT TOP(0) * INTO #TrimmedEntriesGrouped FROM [tblSoftBlockSummary_Daily]
  16.     INSERT INTO #TrimmedEntriesGrouped
  17.     SELECT DISTINCT
  18.         [Site],
  19.         [URLCategoryId],
  20.         [UserName],
  21.         SUM([Requests]) AS [Requests],
  22.         @ToDate AS [Date]
  23.     FROM #TrimmedSummaryEntries
  24.     GROUP BY [Site], [URLCategoryId], [UserName]
  25.     -- Trim the result table to the maximum of 10000 records
  26.     INSERT INTO [tblSoftBlockSummary_Daily]
  27.     SELECT
  28.         [Site],
  29.         [URLCategoryId],
  30.         [UserName],
  31.         [Requests],
  32.         @ToDate AS [Date]
  33.     FROM (
  34.         SELECT
  35.             [Site], [URLCategoryId], [UserName], [Requests]
  36.         FROM
  37.         (
  38.             SELECT
  39.                 [Site], [URLCategoryId], [UserName], [Requests],
  40.                 ROW_NUMBER() OVER (ORDER BY [Requests] DESC) AS rownum
  41.             FROM #TrimmedEntriesGrouped
  42.         ) TopSites
  43.         WHERE rownum <= 10
  44.     UNION ALL
  45.         SELECT
  46.             N'{[23124]}' as [Site],
  47.             0 as [URLCategoryId],
  48.             N' ' as [UserName],
  49.             SUM([Requests]) as [Requests]
  50.         FROM
  51.         (
  52.             SELECT
  53.                 [Site], [URLCategoryId], [UserName], [Requests],
  54.                 ROW_NUMBER() OVER (ORDER BY [Requests] DESC) AS rownum
  55.             FROM #TrimmedEntriesGrouped
  56.         ) OtherSites
  57.         WHERE rownum > 10
  58.     ) AllSites
  59.     WHERE [Requests] IS NOT NULL
  60. END
  61.