Sql 过滤前5个使用过的代码SSR
我正在尝试在几个区域制作一个仪表板,上面有前5个最常用的“区域”、“代码”、“类别”等 这通常在一周的日期范围内 我将坚持使用其中一个图表,这是我的图表(Where语句未包含在实际报告中,仅用于检查相同的日期范围):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',
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)