将一行分隔为相等的日期间隔,并分隔值

  • 本文关键字:分隔 日期 一行 mysql sql
  • 更新时间 :
  • 英文 :


从给定输入创建一个新列作为结束日期,并以相等的分隔金额值

表格提供的

金额90100
id 标准日期
C1 2020年1月
C2 2020
C3 2020年3月 60

我制作了一个存储过程来实现这一点。只需在调用它时指定id和结束日期,它就会插入到新表中。如果结束日期早于开始日期,则会生成警告。这是我在工作台上写的代码:

delimiter //
drop table if exists n_table//
create table n_table (id varchar(5), stdate date, enddt date, amt int)//
drop procedure if exists divide_row//
CREATE  PROCEDURE divide_row (o_id varchar(5),end_date date)
BEGIN
declare counter int default 0;
declare d_diff int;
declare c_id varchar(5);
declare c_stdate date;
declare c_amount int;
select id into c_id  from o_table where id=o_id;
select stdate into c_stdate  from o_table where id=o_id;
select amount into c_amount  from o_table where id=o_id;
set d_diff=datediff(end_date,c_stdate);
if d_diff<0 then
select 'The end_date specified must not be older than the start_date !!' as warning;
else
lp : loop
if counter>d_diff then
leave lp;
end if;
insert n_table values (c_id, adddate(c_stdate,counter),end_date, c_amount/(d_diff+1));
set counter=counter+1;
end loop lp;
end if;
END //

请对此发表评论。

相关内容

  • 没有找到相关文章

最新更新