Tsql 以表的形式获取多个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

我使用的是一个存储过程,其中我使用了多个select语句,但这些语句将值作为多个结果集返回,但我希望返回值位于单个结果集中

以下是我的程序:

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