在报告服务中,用户可以选择包含不同客户的列表。然后,报告生成所选客户的总数。我在报告中有2个表,其中包含总收入。但是,当您选择所有客户时,2个表的总数会有所不同。但是,对于每个客户,表格都匹配。
在第一个表格中,我使用了一个简单的查询:
select revenue from customers where customernumber in (@CustomerNumber)
这个总是显示正确的数字。但是,对于第二个表,我必须调用存储过程:
create procedure calculaterevenue (
@customernumber varchar(1200), @customercategory varchar(255)=NULL
)
在该过程中,表值函数用于获取逗号分隔列表中的所有客户编号,然后使其可用于in运算符:
and customernumber in (select value from fnStringToList',',@customernumber)
在报告的数据集中,我添加了一个@Customers参数
=JOIN(Parameters!Customernumber.Value,",")
我用
打电话给我的程序exec calculaterevenue (@Customers)
这非常有效,直到您选择了很多客户。我怀疑问题出在JOIN中。 JOIN语句是否有最大输出?