SQL 存储例程

SQL Stored Routines

我刚开始使用存储例程, 所以我的数据库中有一些 table,我需要根据一些值进行一些计算。

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetRatios`(IN `date` DATE)
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN

SELECT SUM(a.a_b), a.report_date FROM  product a, product_groups b where b.id = a.group_id AND a.report_date = `date` AND b.report_date = a.report_date AND b.name = "WHATEVER" and a.cu = b.cu and b.cu = "CU"; /*result1*/

SELECT r.r_n FROM r_l r WHERE r.id = 1 /*result2*/
INSERT INTO new_table(name, r) VALUES(result1, result2)

END

现在我的问题是我需要将这两个查询的结果插入另一个 table。他们选择什么并不重要,只是我需要不同的查询,我需要他们的结果在另一行中 table。提前致谢。

尝试使用

创建变量来存储您的结果
SELECT SUM(a.a_b) into variable1 FROM  product a, product_groups b where b.id = a.group_id AND a.report_date = `date` AND b.report_date = a.report_date AND b.name = "WHATEVER" and a.cu = b.cu and b.cu = "CU";


SELECT  a.report_date into variable2 FROM  product a, product_groups b where b.id = a.group_id AND a.report_date = `date` AND b.report_date = a.report_date AND b.name = "WHATEVER" and a.cu = b.cu and b.cu = "CU";

SELECT r.r_n into variable3 FROM r_l r WHERE r.id = 1 /*result2*/

别忘了声明变量!

然后

INSERT INTO new_table(name, r) VALUES(variable1, variable2) 

只是评论您第一个查询 return 2 个值报告 SUM(a.a_b) 和 a.report_date。而你的第二个查询 return r.r_n。所以你有 3 个值 return.

您要插入所有 3 个值吗?如果是,你必须修改你的新 table 以匹配正确的格式:)