12345678910111213141516171819202122232425262728 |
- DROP PROCEDURE IF EXISTS `pro_stat_issue`;
- delimiter ;;
- CREATE PROCEDURE `pro_stat_issue`(IN `ls_type` varchar(32),IN `ls_start` varchar(20),IN `ls_end` varchar(20))
- BEGIN
- DECLARE ls_stat_name VARCHAR(20);
-
- IF ls_type = 'issue_daily' OR ls_type = 'issue_monthly' THEN
- SET ls_stat_name = ls_start;
- IF ls_type = 'issue_monthly' THEN
- SET ls_stat_name = SUBSTR(ls_start FROM 1 FOR 7);
- END IF;
-
- # 先清除数据
- DELETE t FROM ts_stat_data t WHERE t.stat_type = ls_type AND t.`name` = ls_stat_name;
-
- # 再统计数据
- INSERT INTO ts_stat_data (stat_type, `name`, `value`)
- SELECT ls_type, ls_stat_name, COUNT(*)
- FROM ta_issue t
- WHERE t.`status` > -1
- AND TO_DAYS(t.create_date) >= TO_DAYS(ls_start)
- AND TO_DAYS(t.create_date) <= TO_DAYS(ls_end);
-
- END IF;
-
- END
- ;;
- delimiter ;
|