gpt4 book ai didi

sql-server-2008 - 从另一个存储过程获取结果摘要

转载 作者:行者123 更新时间:2023-12-04 04:51:55 35 4
gpt4 key购买 nike

我有一个复杂的存储过程,它返回一些带有一些计算值的行

SELECT  CalculatedField1 ,
CalculatedField2 ,
...
FROM ...
WHERE CONDITION

这个 sproc(我们称之为 procA)根据 WHERE 条件返回可变行数。这工作正常。我现在需要做的是编写一个存储过程来获取这些返回行的摘要。
-- procB
SELECT SUM(CalculatedField1),
SELECT SUM(CalculatedField2),
...
FROM (EXEC procA params)

这可能吗?

编辑:创建临时表完成了这项工作,但是我在传递输出参数时遇到了问题。
CREATE PROCEDURE [dbo].[sprocB] (@prm INT = NULL OUTPUT)
AS
BEGIN
SET NOCOUNT ON;

SET @prm = 1

SELECT Id FROM dbo.AnyTable
END

CREATE PROCEDURE [dbo].[sprocA] (@prm INT = NULL OUTPUT)
AS
BEGIN
SET NOCOUNT ON;

CREATE TABLE #temp (Id INT)

INSERT INTO #temp
EXEC sprocB @prm

SELECT Id FROM #temp
END

执行:
USE [MyDatabase]
GO

DECLARE @return_value int,
@prm int

EXEC @return_value = [dbo].[sprocA]
@prm = @prm OUTPUT

SELECT @prm as N'@prm'

SELECT 'Return Value' = @return_value

GO

来自临时表的结果没问题,结果集被正确检索,但是@pem 值仍然为 NULL。

最佳答案

这是可能的,但您需要一个辅助表:

CREATE PROCEDURE procB
AS

declare @table table (CalculatedField1 int, CalculatedField12 int)

insert into @table
EXEC sp_a

select SUM(CalculatedField1), SUM(CalculatedField2)
from @table

GO

关于sql-server-2008 - 从另一个存储过程获取结果摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17308627/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com