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 以匹配正确的格式:)
我刚开始使用存储例程, 所以我的数据库中有一些 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 以匹配正确的格式:)