在 SQL 服务器中创建一个条件很少的 table

Create a table with few conditions in SQL Server

我在 SQL 服务器中有 3 个 table 如下:

EnquiryTable:

EndID FyYear SNo ServiceID MaterialID 
55    2015   1   1         1
55    2015   2   5         3

ServiceTable:

ServiceID  ServiceName
1          ServiceA
2          ServiceB
3          ServiceC
4          ServiceD
5          ServiceE

Material table:

MaterialID   MaterialName
1            MaterialA
2            MaterialB
3            MaterialC

我需要从 stored procedure 中 return 一个 table,这样 table 最终将有助于绑定 gridview

结果table:

SNo  ServiceName   MaterialName
1    ServiceA      MaterialA
2    ServiceE      MaterialC

基本上需要一个程序来比较 EnquiryTable 中的 ServiceIds, MaterialIdsServiceTableMaterialTable,然后 return 返回结果 table ServiceNamesMaterialNames.

我试过如下:

declare @serviceID int
declare @matID int
select sno, serviceid=@serviceID,materialid=@matID from dbo.enquirytable

@serviceID, @matID 变量被 return 编辑为 null

请专家帮忙

我正在使用 SQL Server 2008 R2。

此致

您必须使用 CREATE PROC SQL keyword, then use the EXEC 创建一个过程来执行存储过程。 您的 select 查询和逻辑应该是存储过程的一部分。

CREATE PROC proc_NAME
@enqID int, @fyYear int
AS
BEGIN
    SELECT E.SNO , S.ServiceName, M.MaterialName
    FROM EnquiryTable E
    INNER JOIN Service S ON E.ServiceID = S.ServiceID
    INNER JOIN Material M ON E.MaterialID = M.MaterialID
    WHERE E.EnqID=@enqID AND M.FyYear=@fyYear
END

您可以将此存储过程执行为

exec proc_NAME @enqID,@fyYear