Tsql 以表的形式获取多个Select查询值
我使用的是一个存储过程,其中我使用了多个select语句,但这些语句将值作为多个结果集返回,但我希望返回值位于单个结果集中 以下是我的程序:Tsql 以表的形式获取多个Select查询值,tsql,stored-procedures,sql-server-2014,Tsql,Stored Procedures,Sql Server 2014,我使用的是一个存储过程,其中我使用了多个select语句,但这些语句将值作为多个结果集返回,但我希望返回值位于单个结果集中 以下是我的程序: Create Proc GetRequestDetail As Begin Select Count(ReceiverId) As GetInvitation From Requests Where ReceiverId = 1044 Select Count(SenderId) As GetSendInvitati
Create Proc GetRequestDetail
As
Begin
Select Count(ReceiverId) As GetInvitation
From Requests
Where ReceiverId = 1044
Select Count(SenderId) As GetSendInvitation
From Requests
Where SenderId = 10
Select Count(ID) As GetAcceptedRequest
From Requests
Where ReceiverId = 7 And Status = 2735
Select Count(ID) As GetRejectedRequest
From Requests
Where ReceiverId = 2182 And Status = 2736
Select Count(ID) As GetAcceptRequest
From Requests
Where SenderId = 10 And status = 1255
Select Count(ID) As GetrejectRequest
From Requests
Where SenderId = 10 And status = 1256
end
如果所有结果需要在同一行中:
ALTER PROCEDURE GetRequestDetail
as
begin
SELECT
GetInvitation = (Select Count(ReceiverId) from Requests Where ReceiverId = 1044 ),
GetSendInvitation = (Select Count(SenderId) from Requests Where SenderId = 10),
GetAcceptedRequest = (Select Count(ID) from Requests where ReceiverId = 7 and Status = 2735),
GetRejectedRequest = (Select Count(ID) as GetRejectedRequest from Requests where ReceiverId = 2182 and Status = 2736),
GetAcceptRequest = (Select Count(ID) as GetAcceptRequest from Requests where SenderId = 10 and status = 1255),
GetrejectRequest = (Select Count(ID) as GetrejectRequest from Requests where SenderId = 10 and status = 1256)
end
另一方面,您的SP似乎缺少参数(可能会将搜索到的ID作为参数接收?)。可能是如下所示:
ALTER PROCEDURE GetRequestDetail
@ReceivedID INT,
@SenderID INT
as
begin
SELECT
GetInvitation = (Select Count(ReceiverId) from Requests Where ReceiverId = @ReceivedID ),
GetSendInvitation = (Select Count(SenderId) from Requests Where SenderId = @SenderID),
GetAcceptedRequest = (Select Count(ID) from Requests where ReceiverId = @ReceivedID and Status = 2735),
GetRejectedRequest = (Select Count(ID) as GetRejectedRequest from Requests where ReceiverId = @ReceivedID and Status = 2736),
GetAcceptRequest = (Select Count(ID) as GetAcceptRequest from Requests where SenderId = @SenderID and status = 1255),
GetrejectRequest = (Select Count(ID) as GetrejectRequest from Requests where SenderId = @SenderID and status = 1256)
end