SQL存储例程

时间:2016-02-02 14:08:41

标签: mysql sql stored-procedures heidisql

我是新手使用存储例程, 所以我的数据库中有一些表,我需要根据一些值进行一些计算。

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

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

1 个答案:

答案 0 :(得分:1)

尝试创建变量以使用

存储结果
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) 

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

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