2017-03-08 3 views
0

Ich verwende SSRS 2014.SSRS - Zeilensichtbarkeitsausdruck

Ich möchte nur die ersten 50 Zeilen anzeigen. Was wird der Ausdruck dafür sein bitte.

Ich verwendete top n Funktionalität funktioniert es nicht. Also dachte ich mir, dass ich einen anderen Weg nehmen sollte, um das Ergebnis per Ausdruck zu erreichen.

Unten Bild ohne Hinzufügen 'Top n'. Im folgende Bild wollte ich mit dem Hinzufügen von 'top n' nur ersten 50 Reihen in den Lieferanten Spalt

enter image description here

Below Bild anzuzeigen. Dann werden die Ergebnisse geändert. Wenige Zeilen in der Konzessionsspalte fehlen.

enter image description here

SQL-Code ist,

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 

Jede Hilfe bitte?

+0

http://stackoverflow.com/questions/18085716/ssrs-display-top-n-but-have-sum-include-all-values ​​ – Snowlockk

+0

Sind Ihre Daten doppelte Werte? –

+0

@ jacky-montevirgen Nein, ich habe keinen doppelten Wert – user2331670

Antwort

-1

ändern Sie bitte Ihre ORDER BY-Klausel:
ORDER BY s [CusNo], YrToDateActual ab

0

Wenn Sie die ersten 50 Lieferanten wollen, sollten Sie in der Lage sein, den folgenden Ausdruck in der Zeile Sichtbarkeit Eigenschaft zu verwenden.:

= Running (Fields! Supplier.Value, CountDistinct „YourDataset“)> 50

der Bericht sollte eine bessere Leistung, wenn Sie auf die Gruppe anstelle einer Reihe Sichtbarkeit Ausdruck diesen Ausdruck als Filter setzen, aber bei In dem Moment kann ich nicht testen, ob dieser Ausdruck bestätigt wird wäre dort erlaubt.