2017-03-08 15 views
0

SSRS 2014を使用しています。SSRS - 行の可視性の表現

最初の50行だけを表示したいとします。これは何の表現になりますか。

私はtop n機能を使用しましたが機能しません。だから、私は表現を通して結果を達成する別のルートをとることを考えました。

下の画像は、「トップn」を加えたものです。下の画像でI「は、上位n」を追加してサプライヤーカラム画像の下

enter image description here

でのみ最初の50行を表示したかったです。結果は変更されます。 Concession列には行がありません。

enter image description here

SQLコード、

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 

任意のヘルプしてくださいますか?

+0

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

+0

データに重複する値がありますか? –

+0

@ jacky-montevirgenいいえ、重複した値はありません – user2331670

答えて

-1

にORDER BY句を変更します。
Sで ORDER [CusNo]、YrToDateActual DESC

0

を使用すると、最初の50社のサプライヤーをしたい場合は、行の可視性プロパティに次の式を使用することができるはずです。

= RunningValue(フィールズ!Supplier.Value、COUNTDISTINCT、「YourDataset」)> 50

レポートがあなたの代わりに、行の可視性表現のグループにフィルタとしてこの表現を置けば、より良い実行しますが、でなければなりません私はこの式がそこでは許可されます。