存储过程
1 查询阶段为20180501至20190101之间数据,用脚本列出20180501至20190101之间所有的年月,形成临时表
SELECT DISTINCT
date_format(
DATE_ADD(
'2018-05-01',
INTERVAL id MONTH
),
'%Y-%m'
) AS `TIME`
FROM
brand
WHERE
DATE_ADD(
'2018-05-01',
INTERVAL id MONTH
) <= '2019-01-01'
order by 1
brand这表需要有一个自增id 从 1开始 大多一点可以
2 游标轮询这个年月临时表,拼临时字符串方式查数据
tmp就是年月字符串
set @v_sql= concat('insert into alldata select * from m_1_customer_source_',tmp,' t ');
prepare stmt from @v_sql;
EXECUTE stmt;
deallocate prepare stmt;
3 游标循环里把每个月的数据放到某个临时表
4 最后返回那个临时表