Sql 过滤前5个使用过的代码SSR

Sql 过滤前5个使用过的代码SSR,sql,reporting-services,Sql,Reporting Services,我正在尝试在几个区域制作一个仪表板,上面有前5个最常用的“区域”、“代码”、“类别”等 这通常在一周的日期范围内 我将坚持使用其中一个图表,这是我的图表(Where语句未包含在实际报告中,仅用于检查相同的日期范围): SELECT CAST([Area] AS INT) AS 'AreaCode', (SELECT COUNT(*) FROM gail_hazzards gh1 WHERE [gh1].[Area] = [gh].[Area]) AS 'AreaCount',

我正在尝试在几个区域制作一个仪表板,上面有前5个最常用的“区域”、“代码”、“类别”等

这通常在一周的日期范围内

我将坚持使用其中一个图表,这是我的图表(Where语句未包含在实际报告中,仅用于检查相同的日期范围):

SELECT
    CAST([Area] AS INT) AS 'AreaCode',

    (SELECT COUNT(*) FROM gail_hazzards gh1 WHERE [gh1].[Area] = [gh].[Area]) AS 'AreaCount',

    gh.[Timetag1] AS 'Time'
FROM
  gail_hazzards gh

  WHERE gh.[TimeTag1] >= '2016-07-04' AND gh.[TimeTag1] <= '2016-07-11'

  ORDER BY [TimeTag1] DESC
*AreaCode*  *AreaCount* *Time*

950,    139 , 2016-07-10 14:57:48.000

480,    683,    2016-07-09 12:56:26.000

835,    41,     2016-07-09 08:57:31.000

835,    41, 2016-07-09 08:48:54.000

835,    41, 2016-07-09 08:48:54.000

835,    41, 2016-07-09 08:48:53.000

880,    156,    2016-07-08 15:47:09.000

950,    139,    2016-07-08 15:26:10.000

880,    156,    2016-07-08 14:53:14.000
在我的报告中:

SELECT
    CAST([Area] AS INT) AS 'AreaCode',

    (SELECT COUNT(*) FROM gail_hazzards gh1 WHERE [gh1].[Area] = [gh].[Area]) AS 'AreaCount',

    gh.[Timetag1] AS 'Time'
FROM
  gail_hazzards gh

  WHERE gh.[TimeTag1] >= '2016-07-04' AND gh.[TimeTag1] <= '2016-07-11'

  ORDER BY [TimeTag1] DESC
*AreaCode*  *AreaCount* *Time*

950,    139 , 2016-07-10 14:57:48.000

480,    683,    2016-07-09 12:56:26.000

835,    41,     2016-07-09 08:57:31.000

835,    41, 2016-07-09 08:48:54.000

835,    41, 2016-07-09 08:48:54.000

835,    41, 2016-07-09 08:48:53.000

880,    156,    2016-07-08 15:47:09.000

950,    139,    2016-07-08 15:26:10.000

880,    156,    2016-07-08 14:53:14.000
我有一个圆图,上面有一个

filter of TOP N, set to 5.
Values are: [Sum(AreaCount)]
Category Groups: AreaCode
问题:
它只会得到一个代码,尽管显然有不止一个。因此,不是前5名,而是只提取1个代码。

生成存储过程,并为日期搜索添加参数变量

将前5名应用到图表中

SELECT DISTINCT(Area),
                    (SELECT COUNT(*) FROM [dbo].[tkg_gail_hazards] c WHERE c.Area = x.Area and CONVERT(date, c.TimeTag1, 102) >= CONVERT(date, @p_start, 102) AND CONVERT(date, c.TimeTag1, 102) <= CONVERT(date, @p_end, 102)) as 'Total' 
            FROM [dbo].[tkg_gail_hazards] x
            ORDER BY Total desc;
选择不同的(区域),
(从[dbo].[tkg_gail_hazards]c中选择计数(*),其中c.面积=x.面积并转换(日期,c.时间标记1,102)>=转换(日期,@p_开始,102)并转换(日期,c.时间标记1,102)