在 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, MaterialIds
与 ServiceTable
和 MaterialTable
,然后 return 返回结果 table ServiceNames
和 MaterialNames
.
我试过如下:
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
我在 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, MaterialIds
与 ServiceTable
和 MaterialTable
,然后 return 返回结果 table ServiceNames
和 MaterialNames
.
我试过如下:
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