By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE mySQLTable (invoice_date DATE);
INSERT INTO mySQLTable VALUES
(STR_TO_DATE("21/8/2567",'%d/%m/%Y')),
(STR_TO_DATE("13/9/2567",'%d/%m/%Y')),
(STR_TO_DATE("13/9/2567",'%d/%m/%Y')),
(STR_TO_DATE("13/9/2567",'%d/%m/%Y')),
(STR_TO_DATE("13/9/2567",'%d/%m/%Y')),
(STR_TO_DATE("18/9/2567",'%d/%m/%Y')),
(STR_TO_DATE("25/10/2567",'%d/%m/%Y')),
(STR_TO_DATE("25/10/2567",'%d/%m/%Y')),
(STR_TO_DATE("25/10/2567",'%d/%m/%Y')),
(STR_TO_DATE("25/10/2567",'%d/%m/%Y')),
(STR_TO_DATE("24/1/2568",'%d/%m/%Y'));
select * from mySQLTable;
Records: 11 Duplicates: 0 Warnings: 0
invoice_date |
---|
2567-08-21 |
2567-09-13 |
2567-09-13 |
2567-09-13 |
2567-09-13 |
2567-09-18 |
2567-10-25 |
2567-10-25 |
2567-10-25 |
2567-10-25 |
2568-01-24 |
select
DATE_FORMAT(cast(invoice_date as date), '%d/%m/%Y') as invoice_date,
CONCAT("INV",
DATE_FORMAT(cast(invoice_date as date), "%y%m"),
"-",
row_number() OVER (PARTITION BY DATE_FORMAT(cast(invoice_date as date), "%y%m"))
) as invoice_no
from mySQLTable;
invoice_date | invoice_no |
---|---|
21/08/2567 | INV6708-1 |
13/09/2567 | INV6709-1 |
13/09/2567 | INV6709-2 |
13/09/2567 | INV6709-3 |
13/09/2567 | INV6709-4 |
18/09/2567 | INV6709-5 |
25/10/2567 | INV6710-1 |
25/10/2567 | INV6710-2 |
25/10/2567 | INV6710-3 |
25/10/2567 | INV6710-4 |
24/01/2568 | INV6801-1 |