繁体   English   中英

SSRS 查询参数无法正常工作

[英]SSRS Query parameter is not working correctly

我的 SSRS reprot 数据中有 4 个参数正在使用 SP 捕获

        ALTER PROCEDURE [adjuster].[rpt_HIIGAdjusterLicense]
@Adjustername varchar (max),
@State char (3),
@LicenseStatus char (3),
@RenewalNotAllowed varchar (5)
AS BEGIN(
SELECT  
 FirstName +' '+ LastName as AdjusterName ,
 StateLicense,
 LicenseNumber,
 LicenseStatus,
 ExpirationDate,
 RenewalNotAllowed,
 NPN
FROM adjuster.vw_HIIGAdjusterLicense   
Where ( FirstName LIKE (CASE WHEN @Adjustername IS NULL THEN FirstName ELSE @Adjustername + '%' END))
OR  (@State = 'ALL'  OR @State IN (SELECT Value FROM dbo.FnSplit(@State, ',')))
OR ( @LicenseStatus = 'ALL' OR @LicenseStatus   IN (SELECT Value FROM dbo.FnSplit(@LicenseStatus, ',')))
AND  (@RenewalNotAllowed = 'ALL' OR @RenewalNotAllowed IN (SELECT Value FROM dbo.FnSplit(@RenewalNotAllowed, ',')))
)
END

GO

和参数数据集是

SELECT DISTINCT 2 AS Priority, LicenseStatus
FROM            vw_License
UNION ALL
SELECT        1 AS Priority, 'ALL' AS Choice
ORDER BY Priority, LicenseStatus



SELECT DISTINCT 2 AS Priority, StateLicense
FROM            vw_License
UNION ALL
SELECT        1 AS Priority, 'ALL' AS Choice
ORDER BY Priority, StateLicense



SELECT DISTINCT 2 AS Priority, RenewalNotAllowed
FROM            LicenseDetail
UNION ALL
SELECT        1 AS Priority, 'ALL' AS Choice
ORDER BY Priority, RenewalNotAllowed

在 SSRS 中,当 Name 值为“null”时 state 值为“ALL”,Status 值为“All”,RenewalNotAllowed 值为“N”。 该报告仍显示“Y”值为 RenewalNotAllowed 的记录。

但应显示 RenewalNotAllowed 值为“N”的记录。 请参考下图

在此处输入图像描述

将 @State 和 @LicenseStatus 的 where 子句中的外部OR更改为AND

当前,如果@State为“ALL”,则WHERE子句中的第二行对每一行的计算结果都为True ,因此将返回每一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM