簡體   English   中英

SSRS-行可見性表達式

[英]SSRS - Row visibility expression

我正在使用SSRS 2014。

我只想顯示前50行。 請對此表達什么。

我使用了top n功能,但無法使用。 所以我想走另一條路,通過表達來達到目的。

下圖未添加“ top n”。 在下圖中,我只想在“供應商”列中顯示前50行

在此處輸入圖片說明

在下面的圖片中添加“ top n”。 然后結果被改變。 “讓步”列中缺少幾行。

在此處輸入圖片說明

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

有什么幫助嗎?

如果要使用前50個供應商,則應該可以在行可見性屬性中使用以下表達式:

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

如果將此表達式作為過濾器而不是行可見性表達式放在組中,則報告的性能應更好,但是目前我無法測試以確認是否可以在該表達式中使用該表達式。

將您的ORDER BY子句修改為:
ORDER BY s。[CusNo],YrToDateActual desc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM