我是编写visual studio报告并将它们链接到存储过程的新手。我已经选择了像表格中的1个变量这样的简单位,它可以等于存储过程中的一个变量,例如开始数据或结束日期。
我有一份报告的下拉列表,用户可以在其中选择公司名称,他们可以勾选多个公司名称。
我已将公司名称设置为与我的sql中的变量相等但不知道如何将其全部链接在一起,因为它不会将值从下拉列表转换为字符串。
这是我的查询的简化版
Declare @ContactID int
Declare @CompanyName nvarchar(max)
set @CompanyName = @CompanyNameParam
set @ContactID = (select ContactID from Company co inner join Contacts c on c.CompanyID = co.CompanyID where CompanyName = @CompanyName)
select *
from company co inner join contacts c on c.CompanyID = co.CompanyID
where ContactID in (@ContactID)
答案 0 :(得分:1)
据推测,您需要多个联系人。如果是这样,请使用表变量。对于您的示例代码:
Declare @CompanyName nvarchar(max);
set @CompanyName = @CompanyNameParam;
declare @Contacts table (
ContactId int
);
insert into @Contacts(ContactId)
select ContactID
from Company co inner join
Contacts c
on c.CompanyID = co.CompanyID
where CompanyName = @CompanyName;
select *
from company co inner join contacts c on c.CompanyID = co.CompanyID
where ContactID in (select ContactId from @Contacts);