DROP PROCEDURE IF EXISTS nomer_lot;
DELIMITER //
create procedure nomer_lot
(
IN in_id int
)
BEGIN
Set @id = in_id;
Set @nomer_lot = (select concat(shift,date_format(tgl,'%y'),date_format(tgl,'%m'),date_format(tgl,'%d'),kd_mesin) from tb_lot where id = @id);
WITH RECURSIVE nmer_lot AS (
    SELECT 1 AS n
    UNION ALL
    SELECT n + 1 FROM nmer_lot WHERE n < (select nomor from tb_lot where id = @id)
)
SELECT ifnull(CONCAT(@nomer_lot, LPAD(n, 3, '0')),0) AS lotfg FROM nmer_lot;
END;
//

select tb_seq.rowid,tb_seq.id,tb_seq.tgl,tb_seq.mulai,tb_seq.hingga from(
select tb.rowid,tb.id,tb.tgl,ifnull(B.nmr,0) as mulai,tb.nmr as hingga from(
select row_number() over (order by A.id asc) as rowid,A.id,A.tgl,A.nomor,
sum(A.nomor) over (order by A.id asc) as nmr
from tb_lot A
where A.tgl = '2024-08-06'
) as tb
Left join(select (row_number() over (order by id asc)+1) as rowid,
sum(nomor) over (order by id asc) as nmr
from tb_lot where tgl = '2024-08-06'
)B on B.rowid = tb.rowid
) as tb_seq
where tb_seq.id = 9