首页 > 解决方案 > 如何将选择查询结果插入到带有存储过程的表中

问题描述

我想将查询结果添加到另一个表中,该表仅用于通过存储过程收集一些统计信息。

这就是我所取得的成就:https ://sqltest.net/#926688

但是结果集是空的,我不知道为什么。

Table: SurveyData
ID|Variable1|Variable2
 1|        3|        4
 2|        2|        4
 3|        5|        1

使用存储过程,我想计算变量的值以防它们为 4 或 5,并将结果放入另一个名为 Upper_Values 的表中

结果应该是这样的

Table: Upper_Values
ID|Var1count|Var2Count
1 |        1|        2
2 | ...

我为此写的SP是:

GO
CREATE PROCEDURE Put_Values
AS
BEGIN
    SET NOCOUNT ON
    INSERT INTO Upper_Values(Var1Count, Var2Count)
    Select count(Variable1) as Var1Count, count(Variable2) as Var2Count from surveyData
END

谁能帮我完成这件事?

标签: sql-servertsqlstored-proceduresinsert

解决方案


我修改了您的代码,以便它可以运行。

CREATE TABLE sql_server_test_a 
( 
    ID         NVARCHAR(4000), 
    FIRST_NAME NVARCHAR(200), 
    LAST_NAME  NVARCHAR(200) 
); 

INSERT INTO sql_server_test_a (ID, FIRST_NAME, LAST_NAME) VALUES ('1', 'Paris', 'Hilton'); 


CREATE TABLE sql_server_test_b
( 
    FIRST NVARCHAR(200),
    LAST NVARCHAR(200)
);
GO
CREATE PROCEDURE Put_First
AS
BEGIN
    SET NOCOUNT ON
    INSERT INTO sql_server_test_b(FIRST, LAST)
    Select FIRST_NAME as FIRST, LAST_NAME as LAST from sql_server_test_a
END
GO

EXEC Put_First;

SELECT * from sql_server_test_b

推荐阅读