如何解决SSRS中的两个多值参数
我在SQL中有两个多值参数:where(PayToTIN IN(@PayToTIN)或PCP_ProvId IN(@PCP_ProvId)。我试图在或参数中放入多个值,但是当我在中放入一个值时不管是哪个参数,SSRS都将另一个参数视为“。”由于两个参数都是多值,因此我也无法将其设为空。是否有一种变通方法来在一个或另一个参数中运行多个值?
Declare @PayToTIN as varchar(max) = '562660402' --'562660402'
Declare @PCP_ProvId as varchar(max) --= 'LASRL12550' --'LASRL12550'
declare @detailfields as varchar(max) = NULL
declare @PayToTIN_switch varchar(max) =
( select max(PayToTIN)
from LA_Temp.dbo.vMemberPCP
where cast(PayToTIN as varchar) in (@PayToTIN)
)
declare @PCPAssignmentID_switch varchar(max) =
( select max(PCP_ProvId)
from LA_Temp.dbo.vMemberPCP
where cast(PCP_ProvId as varchar) in (@PCP_ProvId)
)
declare @include_PayToTIN bit = case when 'Pay To Tin' in (@detailfields) then 1 else 0 end
declare @include_PCP_ProvId bit = case when 'PCP ProvID' in (@detailfields) then 1 else 0 end
select distinct
x.CarrierMemID
--,MemberName,MbrLastName =rtrim( e.LastName),MbrFirstName = rtrim(e.FirstName),MbrMI = rtrim(e.MiddleName),x.DOB,x.Age,x.Sex,Address = e.addr1,City = e.city,State = e.state,Zip = e.zip,Parish = e.county,MemPhone = e.phone,PCPName,PCP_NPI,PCPProvID,PCPEffDate,Specialty,ServiceLocation,PayToProvider,PayToTIN,PayToProvID,PCP_ProvId,PCPAssignment
from LA_Temp.dbo.vMemberPCP x
inner join PlanReport_QNXT_LA.dbo.enrollkeys ek
on x.enrollid = ek.enrollid
inner join PlanReport_QNXT_LA.dbo.orgpolicy o
on o.orgpolicyid = ek.orgpolicyid
and right(rtrim(o.policynum),2) <> 'BH'
inner join PlanReport_QNXT_LA.dbo.member m
on ek.memid = m.memid
inner join PlanReport_QNXT_LA.dbo.entity e
on e.entid = m.entityid
--where PayToTIN = @PayToTIN --AMB 05/07/18
where (PayToTIN IN (@PayToTIN)
or '' = @PayToTIN_switch
)
or ( PCP_ProvId IN (@PCP_ProvId)
or '' = @PCPAssignmentID_switch
)
解决方法
where (case when PayToTIN = '' then null else PayToTIN end in (@PayToTIN))
OR (case when PCP_ProvId = '' then null else PCP_ProvId end in (@PCP_ProvId))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。