我在SQL Server中有3个表,如下所示:
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
表:
MaterialID MaterialName
1 MaterialA
2 MaterialB
3 MaterialC
我需要从stored procedure
返回如下表格,以便此表格最终有助于绑定gridview
。
结果表:
SNo ServiceName MaterialName
1 ServiceA MaterialA
2 ServiceE MaterialC
基本上需要一个程序来比较ServiceIds, MaterialIds
与EnquiryTable
和ServiceTable
之间的MaterialTable
,然后返回带有ServiceNames
和{{的结果表1}}。
我尝试了类似下面的内容:
MaterialNames
但declare @serviceID int
declare @matID int
select sno, serviceid=@serviceID,materialid=@matID from dbo.enquirytable
变量返回为@serviceID, @matID
。
专家请帮忙。
我使用的是SQL Server 2008 R2。
此致
答案 0 :(得分:2)
您必须使用CREATE PROC SQL关键字创建过程,然后使用EXEC执行存储过程。 您的选择查询和逻辑应该是存储过程的一部分。
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