我正在使用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
请帮忙吗?
答案 0 :(得分:0)
如果您想要前50个供应商,您应该能够在行可见性属性中使用以下表达式:
= RunningValue(Fields!Supplier.Value,CountDistinct,“YourDataset”)> 50
如果将此表达式作为过滤器放在组而不是行可见性表达式上,报告应该会更好,但目前我无法测试以确认是否允许此表达式。
答案 1 :(得分:-1)
将您的ORDER BY子句修改为:
ORDER BY s。[CusNo],YrToDateActual desc