我正在处理这个 SSRS 报告,用户要求我创建一个包含三个参数的报告:学期、学生状态和录取通知书。
描述:有以下不同的录取通知:
拒绝 - 计划费用 拒绝 - 其他拒绝 - 接受的计划/时间 拒绝 - 在另一所学校注册 拒绝 - 计划适合/教育需求 延期 拒绝 - 财务支持
当学生/招生人员回复报价时,它会被记录在杂项表中。但是,如果未捕获响应,则不会创建记录。
用户希望我也希望我包括尚未回复报价的学生。这样想很容易,这就是我所做的:
使用用户要求的三个参数创建了一个存储过程。--在这个存储过程中,为了允许参数有多个值,我使用了以下函数:
CREATE FUNCTION CSVToVarChar (
@List VARCHAR(8000),
@Delimiter CHAR(1) = ','
)
RETURNS TABLE
AS
RETURN SELECT CAST(SUBSTRING(@Delimiter + ISNULL(@List,'') + @Delimiter, Number + 1, CHARINDEX(@Delimiter, @Delimiter + ISNULL(@List,'') + @Delimiter, Number + 1) - Number - 1) AS VARCHAR(8000)) AS String
FROM dbo.fff_Number WITH(NOLOCK)
WHERE SUBSTRING( @Delimiter + ISNULL(@List,'') + @Delimiter, Number, 1 ) = @Delimiter
AND Number < LEN( @Delimiter + ISNULL(@List,'') + @Delimiter )
这个函数在 sp 的 where 子句中是这样使用的:
AdmissionOffer IN (SELECT string
FROM
dbo.CSVToVarChar(@AdmissionOffer, ','))
接下来,我开始创建报告:在报告中,我使用以下查询为 admissionoffer 参数创建了一个数据集以获取我的参数值:
SELECT distinct ISNULL(attributevalue, 'No Response') as AdmissionOffer from table....
我还允许在 ssrs 中为这个参数设置多个值。用户会将 lov 中的 null 视为“无响应”。
我需要帮助:
如何创建一个可以使用多个值的报告/存储过程(不确定我需要在哪里进行更改),而空值就是其中之一。当我运行报告时,我什么也没得到。如果我从 ssrs 中的录取报价 LOV 中删除“无响应”值,则报告工作正常。