0

I am using SSRS 2014.

I want to display only first 50 rows. What will be the expression for this please.

I used top n functionality it doesn't work. So I thought to take another route to achieve the result via expression.

Below image with out adding 'top n'. In the below image I wanted to display only first 50 rows in Supplier column

enter image description here

Below image with adding 'top n'. Then results are changed. Few rows in Concession column are missing.

enter image description here

SQL code is,

    SELECT  s.[CusNo] Supplier, 
RTRIM(CAST(s.[Customer] AS VARCHAR(50)) ) AS Name,
s.[ConcessionNo] Concession, 
RTRIM(CAST(s.[ConcessionName] AS VARCHAR(50)) ) AS ConcessionName,

sum(case when s.Date between convert(date,dateadd(wk, datediff(wk, 0, getdate()) - 1, 0) - 1) and convert(date,dateadd(wk, datediff(wk, 0, getdate()) - 1, 0) + 5) 
           then s.SELLINC else 0 end) ActualSales,

    sum(case when s.Date 
        BETWEEN         
             convert(varchar(10), DATEADD(day, DATEDIFF(day, '19000107', DATEADD(month, DATEDIFF(MONTH, 0, CONVERT(date, CONVERT(VARCHAR(4), (CASE WHEN MONTH(GetDate()) = 1 THEN CONVERT(VARCHAR(4), GetDate(), 112) - 1 ELSE CONVERT(VARCHAR(4), GetDate(), 112) END), 112) + '0101')), 30)) / 7  * 7, '19000107'), 120)
        AND        
             Convert(date, dateadd(wk, datediff(wk, 0, GETDATE()) - 1, 0) + 5)       
           then s.SELLINC else 0 end) YrToDateActual


FROM [dbo].[CustomerReports] s
WHERE s.BRN = 1 or s.BRN = 2 or s.BRN = 3 or s.BRN = 4 or s.BRN = 5  or s.SELLINC is null or s.SELLINC = '0'
GROUP BY s.[CusNo], s.[Customer], s.ConcessionNo, s.ConcessionName
order by YrToDateActual desc

Any help please?

user2331670
  • 335
  • 2
  • 6
  • 15

2 Answers2

0

If you want the first 50 suppliers, you should be able to use the following expression in the row visibility property:

=RunningValue(Fields!Supplier.Value, CountDistinct,"YourDataset") > 50

The report should perform better if you put this expression as a filter on the group instead of a row visibility expression, but at the moment I can't test to confirm whether this expression would be allowed there.

Wesley Marshall
  • 434
  • 4
  • 16
-1

Modify your ORDER BY clause to:
ORDER BY s.[CusNo], YrToDateActual desc

William Xu
  • 241
  • 2
  • 12