【问题标题】:Get Multiple Select Query Value as a Table以表格形式获取多选查询值
【发布时间】:2018-09-04 15:25:55
【问题描述】:

我正在使用一个存储过程,其中我使用了多个 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

【问题讨论】:

    标签: tsql stored-procedures sql-server-2014


    【解决方案1】:

    如果所有结果都需要在同一行:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 2020-07-11
      • 2014-02-22
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多