一个简单的存储过程范例

 1 delimiter $$
 2 CREATE PROCEDURE `proc_Ranking`(IN sku VARCHAR(20),IN skuname VARCHAR(20),IN status VARCHAR(20),IN sales VARCHAR(20),IN today VARCHAR(20),IN old_time VARCHAR(20))
 3 BEGIN
 4     SET @sku = sku;
 5     SET @skuname = skuname;
 6     SET @status = status;
 7     SET @sales = sales;
 8     SET @today = today;
 9     SET @old_time = old_time;
10     SET @sql_header = "SELECT
11              c.`sku`,c.`amt`,c.`avgs` avg,s.`skuname`,s.`skupic`,s.`edittime`,st.`statusname`
12         FROM(
13             SELECT
14                  `sku` , ROUND(SUM( `amt` ) , 2) ‘amt‘ , ROUND(SUM( `avg` ) /7 , 2) ‘avgs‘
15             FROM `skusales`
16             WHERE
17                  `sku` <> ‘‘
18             AND `paytime` > @old_time
19             AND `paytime` < @today
20             GROUP BY `sku`) c
21             LEFT JOIN
22                 `skustatus` s ON c.`sku` = s.`sku`
23             LEFT JOIN
24                 `statustype` st ON s.`sale_status` = st.`pid`
25         WHERE
26             1";
27     IF @sku <> ‘‘ THEN
28     SET @sql_header = CONCAT(@sql_header," AND c.`sku` = @sku");
29     END IF;
30
31     IF @status <> ‘‘ THEN
32     SET @sql_header = CONCAT(@sql_header," AND s.`sale_status` = @status");
33     END IF;
34
35     IF @skuname <> ‘‘ THEN
36     SET @sql_header = CONCAT(@sql_header," AND s.`skuname` like @skuname");
37     END IF;
38
39     IF @sales <> ‘‘ THEN
40     SET @sql_header = CONCAT(@sql_header," AND c.avgs");
41     SET @sql_header = CONCAT(@sql_header,@sales);
42     END IF;
43     SET @sql_header = CONCAT(@sql_header," ORDER BY c.amt DESC");
44
45     SET @sql_bodys = @sql_header;
46
47     PREPARE stmt FROM @sql_bodys;
48     EXECUTE stmt;
49     DEALLOCATE PREPARE stmt ;
50
51     END$$
时间: 2024-10-16 06:15:03

一个简单的存储过程范例的相关文章

mysql 如何创建一个简单的存储过程

1 用mysql客户端登入2 选择数据库 mysql>use test3 查询当前数据库有哪些存储过程 mysql>show procedure status where Db='test'4 创建一个简单的存储过程 mysql>create procedure hi() select 'hello'; 5 存储过程创建完毕,看怎么调用它 mysql>call hi();显示结果 mysql> call hi(); +-------+ | hello | +-------+

SQL点滴28—一个简单的存储过程

原文:SQL点滴28-一个简单的存储过程 在表中写入一条数据同事要向另外一个表中写入信息,所以会使用到事务.实际使用的时候还会一次向一个表中吸入多条数据,下面的存储过程,将字符串拆分成数组然后写入到表中. /****** Object: StoredProcedure [dbo].[sp_InsertEmployee] Script Date: 09/17/2012 23:28:42 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO

一个简单的存储过程

create procedure proc_pay (@maxmoney int, @minmoney int, @paymonth nvarchar(20)) as begin select 储值方式,sum(台币) from 储值分析 where uid in (select uid from 储值分析 where [email protected] group by uid having sum(台币) between @minmoney and @maxmoney) group by 储

一个简单的3D范例,是在别人基础上面整理的。

一个简单的范例,是在别人基础上面整理的.原来的例子,框图太乱了,没有条理感. http://pan.baidu.com/s/1eQTyGCE

一个简单的存储过程使用事务的例子

在存储过程中使用事务时非常重要,使用数据库可以保持数据的关联完整性,在SQL Server存储过程中使用事务也很简单,举个例子: Create Procedure MyProcedure ( @Param1 nvarchar(10), @Param2 nvarchar(10) ) AS Begin Set NOCUNT ON; Set XACT_ABORT on; Begin Tran Delete from table1 where name='abc'; insert into table2

写一个简单的存储过程实例的笔记

1,运行在phpmyadmin 上,用于插入数据,关联产品与运费表 1 /*定义存储过程分解符*/ 2 delimiter // 3 DROP PROCEDURE IF EXISTS doShipping// 4 CREATE PROCEDURE doShipping() 5 BEGIN 6 /*声明变量*/ 7 DECLARE no_more_record INT DEFAULT 0; 8 DECLARE i INT; 9 DECLARE entityId BIGINT(10); 10 /*创

写一个简单的存储过程

-- MySQL中的三中循环 while . loop .repeat 求 1-n 的和 -- 第一种 while 循环 -- 求 1-n 的和 /* while循环语法: while 条件 DO 循环体; end while; */ create procedure add_calendar(a int) begin declare i int default 1; while i<=a DO -- 循环开始 INSERT INTO calendar(datelist) VALUES( add

创建三个表并写一个简单的存储过程

一个简单的存储过程(批量插入数据)

开发时总会需要批量插入一些测试数据,而批量又执行太慢. CREATE OR REPLACE PROCEDURE "INSERTTESTDATA1" AS P_I          NUMBER;P_NUM  NUMBER := 120160000550000;    //以此数开始每次加1,循环2000000次 BEGIN  FOR P_I   IN 1 .. 2000000  LOOP   P_NUM := P_NUM +1; INSERT INTO      APPLY_MAIN_