mysql存储过程示例
DELIMITER $$
USE `mall_system`$$
DROP PROCEDURE IF EXISTS `get_statistics`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_statistics`(IN shopId BIGINT)
BEGIN
DECLARE today_money DECIMAL(12,2);
DECLARE today_visitor INT;
DECLARE today_order INT;
DECLARE total_user INT;
DECLARE pay_consumer_number INT;
DECLARE browse_number INT;
DECLARE use_date INT;
DECLARE yesterday_money DECIMAL(12,2);
DECLARE yesterday_visitor INT;
DECLARE yesterday_order INT;
DECLARE yesterday_pay_consumer INT;
DECLARE yesterday_browse_number INT;
DECLARE wait_to_deliver INT;
DECLARE wait_to_pay INT;
DECLARE sku_low INT;
SELECT IFNULL(SUM(total_real_price),0) INTO today_money FROM `shop_order` WHERE shop_id = shopId AND STATUS IN(1,2,3) AND DATEDIFF(CURDATE(),pay_time) = 0;
SELECT COUNT(*) INTO today_visitor FROM `visitor_records` WHERE shop_id = shopId AND DATEDIFF(CURDATE(),`date`) = 0;
SELECT COUNT(*) INTO today_order FROM `shop_order` WHERE shop_id = shopId AND STATUS IN(1,2,3) AND DATEDIFF(CURDATE(),pay_time) = 0;
SELECT COUNT(*) INTO total_user FROM `user_info` WHERE shop_id = shopId;
SELECT IFNULL(COUNT(DISTINCT(user_id)),0) INTO pay_consumer_number FROM `shop_order` WHERE shop_id = shopId AND DATEDIFF(CURDATE(),pay_time)=0;
SELECT IFNULL(SUM(times),0) INTO browse_number FROM `visitor_records` WHERE shop_id = shopId AND DATEDIFF(CURDATE(),`date`)=0;
SELECT DATEDIFF(CURDATE(),create_time)INTO use_date FROM `shop` WHERE id = shopId;
SELECT IFNULL(SUM(total_real_price),0) INTO yesterday_money FROM `shop_order` WHERE shop_id = shopId AND STATUS IN(1,2,3) AND DATEDIFF(CURDATE(),pay_time) = 1;
SELECT COUNT(*) INTO yesterday_visitor FROM `visitor_records` WHERE shop_id = shopId AND DATEDIFF(CURDATE(),`date`) = 1;
SELECT COUNT(*) INTO yesterday_order FROM `shop_order` WHERE shop_id = shopId AND STATUS IN(1,2,3) AND DATEDIFF(CURDATE(),pay_time) = 1;
SELECT IFNULL(COUNT(DISTINCT(user_id)),0) INTO yesterday_pay_consumer FROM `shop_order` WHERE shop_id = shopId AND DATEDIFF(CURDATE(),pay_time)=1;
SELECT IFNULL(SUM(times),0) INTO yesterday_browse_number FROM `visitor_records` WHERE shop_id = shopId AND DATEDIFF(CURDATE(),`date`)=1;
SELECT COUNT(*) INTO wait_to_deliver FROM `shop_order` WHERE shop_id = shopId AND STATUS = 1;
SELECT COUNT(*) INTO wait_to_pay FROM `shop_order` WHERE shop_id = shopId AND (`status`= 5 OR `status` = 4);
SELECT COUNT(*) INTO sku_low FROM `prod_spu` WHERE shop_id = shopId AND total_inventory < 10 AND putaway = 1 AND isdelete = 0;
SELECT today_money AS todayMoney ,today_visitor AS todayVisitor,today_order AS todayOrder,total_user AS totalUser,
yesterday_money AS yesterdayMoney,yesterday_visitor AS yesterdayVisitor,yesterday_order AS yesterdayOrder,
wait_to_deliver AS waitToDeliver,wait_to_pay AS waitToPay,sku_low AS skuLow,pay_consumer_number AS payConsumerNumber,
browse_number AS browseNumber,yesterday_pay_consumer AS yesterdayPayConsumer,yesterday_browse_number AS yesterdayBrowseNumber,
use_date AS useDate;
END$$
DELIMITER ;