【问题标题】:How to get count in output variable using a stored procedure?如何使用存储过程获取输出变量的计数?
【发布时间】:2016-08-18 08:41:39
【问题描述】:
SELECT COUNT(*) 
FROM tblRequest 
GROUP BY RequestStatusID

此查询返回具有相应状态Id 的总请求数的列。

我想在使用存储过程的输出变量中获取 total 请求计数与其statusId 相对应。

此查询返回具有相应状态 ID 的总请求数的列。

我想使用存储过程在输出变量中获取与其 statusId 相关的总请求数。

即它返回一个类似于

的列
______________  
|NoNameColumn|  
|------------|  
|      21    |
|       6    |  
|      14    |
|------------|  

我想使用存储过程和 vb.net 代码分别获取输出变量中的每一行值(例如,SET @pending=21、Set @Sent=6、SET Discarded=14)。

简单来说:如何通过 SQL Server 存储过程在变量中获取该行的值?

【问题讨论】:

  • 这适用于哪个 RDBMS?存储过程和过程 SQL 是高度特定于供应商的 - 请添加标签以指定您使用的是 mysqlpostgresqlsql-serveroracle 还是 db2 - 或完全不同的东西。

标签: vb.net stored-procedures sql-server-2005


【解决方案1】:
CREATE PROCEDURE CountRequests
@requests int output
AS
SELECT @requests = COUNT(*) FROM tblRequest GROUP BY RequestStatusID

或者直接选择它

SELECT COUNT(*) requests FROM tblRequest GROUP BY RequestStatusID

【讨论】:

    【解决方案2】:

    我使用以下存储过程返回值。

    CREATE PROCEDURE get_count
    
    AS
    BEGIN
    DECLARE @VALUE int;
    
    SET @VALUE=(SELECT COUNT(*) FROM tblRequest GROUP BY RequestStatusID);
    
    RETURN @VALUE;
    
    END
    GO
    

    【讨论】:

    • 但它没有返回单个值。它返回一个列
    • 你想要关于状态 id 的计数..??它将返回每个状态 id 的计数
    • 不,我不想计算各自的状态 ID。我想计算每个状态 ID。我想在存储过程中的单独输出变量中获取每个计数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2012-01-26
    • 1970-01-01
    相关资源
    最近更新 更多