From bbe3bc715177a377852a7fd8d3e344ffe130d6a9 Mon Sep 17 00:00:00 2001 From: mba1398 <26516464+mba1398@users.noreply.github.com> Date: Mon, 7 Apr 2025 17:26:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20ch05=5FSQL=E9=AB=98?= =?UTF-8?q?=E7=BA=A7=E5=A4=84=E7=90=86.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch05_SQL高级处理.md | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/ch05_SQL高级处理.md b/ch05_SQL高级处理.md index 140a0fa..c930460 100644 --- a/ch05_SQL高级处理.md +++ b/ch05_SQL高级处理.md @@ -281,16 +281,23 @@ show tables; - 插入数据 ```SQL -- 使用 SQL 客户端进行创建 -CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_product_test`() +-- 按照不同维度来汇总每日销售数据,分别插入相应的统计表 + +CREATE PROCEDURE `P_SALES_STATISTICS`(IN SDATE VARCHAR(20)) BEGIN - declare i int; - set i=1; - while i<9 do - set @pcid = CONCAT('000', i); - PREPARE stmt FROM 'INSERT INTO product_test() SELECT * FROM shop.product where product_id= ?'; - EXECUTE stmt USING @pcid; - set i=i+1; - end while; + DELETE FROM shop.sales_statistics_1 WHERE sdate = SDATE; + INSERT INTO shop.sales_statistics_1 + SELECT sdate, product_id, product_name, SUM(sales_quantity) AS sales_quantity, SUM(sales_amount) AS sales_amount + FROM shop.sales_record + GROUP BY sdate, product_id, product_name; + + DELETE FROM shop.sales_statistics_2 WHERE sdate = SDATE; + INSERT INTO shop.sales_statistics_2 + SELECT a.sdate, b.product_type, SUM(a.sales_quantity) AS sales_quantity, SUM(a.sales_amount) AS sales_amount + FROM shop.sales_record a + LEFT JOIN shop.product b + ON a.product_id = b.product_id + GROUP BY a.sdate, b.product_type; END ```