2016-07-12 3 views
2

Ich versuche, ein Armaturenbrett auf mehrere Bereiche mit den Top 5 am häufigsten verwendeten ‚Areas‘ ‚Codes‘ ‚Kategorien‘ usw.Filter Top 5 verwendeten Codes SSR

Dies ist in der Regel innerhalb einer Woche Datumsbereich zu machen.

ich zu einem der Charts halten werde, ist das, was ich für sie (die Where-Anweisung nicht im eigentlichen Bericht enthalten ist, verwendet nur den gleichen Zeitraum zu überprüfen):

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 

Ergebnisse Schnipsel von SQL:

*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 

In meinem Bericht:

Ich habe einen Kreisdiagramm, das eine

filter of TOP N, set to 5. 
Values are: [Sum(AreaCount)] 
Category Groups: AreaCode 

Die Emission hat: Es nur einen Code erhalten wird, obwohl es deutlich mehr als eine. Also statt einer Top 5 zieht nur 1 Code.

Antwort

0

In eine gespeicherte Prozedur umgesetzt und Parametervariablen für die Datumssuche hinzugefügt.

Applied TOP 5 das Diagramm

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;