Sql server 2008 使用多个Varchar作为参数

Sql server 2008 使用多个Varchar作为参数,sql-server-2008,parameters,ssrs-2008-r2,Sql Server 2008,Parameters,Ssrs 2008 R2,我正在尝试创建一个查询,允许我在SSRS中使用多个varchar作为参数 代码如下: Declare @CallCodes as VarChar(10) Set @CallCodes = ('MORC30' , 'Morc60') ; With Data AS (SELECT VC.[CallCode] ,VC.[HospCode] ,VC.[HospMastID] ,VC.[ClientID]

我正在尝试创建一个查询,允许我在SSRS中使用多个varchar作为参数

代码如下:

Declare @CallCodes as VarChar(10)
Set @CallCodes = ('MORC30' , 'Morc60')

;
With Data
AS
    (SELECT 
        VC.[CallCode]
          ,VC.[HospCode]
          ,VC.[HospMastID]
          ,VC.[ClientID]
          ,Row_Number () Over (Partition By HospMastID, VC.ClientID Order By HospMastID, VC.ClientID, GLCode) as Txn
    FROM 
    [RptSys].[dbo].[CSC_VuesionImport_DevDetl] as VC
    Inner Join
    [AVimark_OLTP].[dbo].[Client] as C
    on
    VC.HospMastID = C.HospitalMasterID
    and
    VC.ClientID = C.ClientID
    Inner Join
    [Avimark_OLTP].[dbo].[Patient] as P
    on
    VC.HospMastID = P.HospitalMasterID
    and
    VC.PatientID = P.PatientID
    Inner Join
    [Avimark_OLTP].[dbo].[Treatment] as T
    on
    VC.HospMastID = T.HospitalMasterID
    and
    VC.MastReminder = T.Code
    Where
    VC.CallCode in @CallCodes)
当我尝试运行它时,这会给出一个错误。最后的输出是允许最终用户从SSRS报告中的下拉列表中进行选择。我已经尝试了where语句的in或like的所有变体


如果您有任何建议,我们将不胜感激。

您为什么不把帕尔玛人带到标有#

我希望这就是你要找的,如果不是请告诉我。或者像评论中提到的那样给出错误消息

祝你有一个美好的一天&来自瑞士的问候


艾蒂安

什么错误?我们既看不懂你的屏幕,也看不懂你的思想——你必须告诉我们!Marc,根据我是使用like还是in,错误会有所不同。我在set语句或like语句中出现无效语法错误。Etienne,参数是我希望最终用户选择的,因此我无法在表中完全形式化它。这是报告的一部分,他们从代码列表中进行选择。哦,我明白了,所以你有一个SSRS参数,用户可以在打开报告时设置它?您是否可以从这个列表中选择一个以上的值?是的,这就是目标。它可以很好地处理整数参数,只是似乎无法处理NVARCHAR参数。梅比:这对你有帮助
CREATE TABLE #tmp(
Callcodes varchar(10))

INSERT INTO #tmp
VALUES
('MORC30'),
('Morc60')


With Data
AS
(SELECT 
VC.[CallCode]
,VC.[HospCode]
,VC.[HospMastID]
,VC.[ClientID]
,Row_Number () Over (Partition By HospMastID, VC.ClientID Order By HospMastID, VC.ClientID, GLCode) as Txn
FROM 
[RptSys].[dbo].[CSC_VuesionImport_DevDetl] as VC
Inner Join
[AVimark_OLTP].[dbo].[Client] as C
on
VC.HospMastID = C.HospitalMasterID
and
VC.ClientID = C.ClientID
Inner Join
[Avimark_OLTP].[dbo].[Patient] as P
on
VC.HospMastID = P.HospitalMasterID
and
VC.PatientID = P.PatientID
Inner Join
[Avimark_OLTP].[dbo].[Treatment] as T
on
VC.HospMastID = T.HospitalMasterID
and
VC.MastReminder = T.Code
Where
VC.CallCode in (SELECT * FROM #tmp))