add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
select version();
version()
8.0.36
CREATE TABLE Projected_stock (
Material INTEGER ,
`Date` DATE ,
Stock INTEGER ,
Demand INTEGER ,
Supply INTEGER ,
Projected INTEGER ,
Target_Stock INTEGER ,
Overstock VARCHAR(20)
);

INSERT INTO Projected_stock VALUES
('123456','2024-06-24','60','0','0','60','24','Yes'),
('123456','2024-06-26','0','4','0','56','24','Yes'),
('123456','2024-06-27','0','4','0','52','24','Yes'),
('123456','2024-07-02','0','0','10','62','24','Yes'),
('123456','2024-07-04','0','0','10','72','24','Yes'),
('123456','2024-07-04','0','0','1','73','24','Yes'),
('123456','2024-07-04','0','1','0','72','24','Yes'),
('123456','2024-07-04','0','1','0','71','24','Yes'),
('123456','2024-07-04','0','4','0','67','24','Yes'),
('123456','2024-07-04','0','4','0','63','24','Yes'),
('123456','2024-07-05','0','4','0','59','24','Yes'),
('123456','2024-07-11','0','0','11','70','24','Yes'),
('123456','2024-07-13','0','1','0','69','24','Yes'),
('123456','2024-07-13','0','1','0','68','24','Yes'),
('123456','2024-07-13','0','1','0','67','24','Yes'),
('123456','2024-07-14','0','4','0','63','24','Yes'),
('123456','2024-07-16','0','4','0','59','24','Yes'),
('123456','2024-07-18','0','0','11','70','24','Yes'),
('123456','2024-07-18','0','4','0','66','24','Yes'),
('123456','2024-07-19','0','1','0','65','24','Yes'),
('123456','2024-07-19','0','1','0','64','24','Yes'),
('123456','2024-07-21','0','4','0','60','24','Yes'),
('123456','2024-07-21','0','1','0','59','24','Yes'),
('123456','2024-07-21','0','1','0','58','24','Yes'),
Records: 64  Duplicates: 0  Warnings: 0
Table 'fiddle.mytable' doesn't exist
-- and here the SQL your tried...
WITH CTE as
(
SELECT material, c.Date,
CASE
WHEN MIN(CASE WHEN Projected>48 THEN '1' ELSE '0' END)!=MAX(CASE WHEN Projected>48 THEN '1' ELSE '0' END) THEN '?'
ELSE MIN(CASE WHEN Projected>48 THEN '1' ELSE '0' END)
END as Overstock
FROM Projected_stock c
WHERE c.Date between c.Date AND DATE_ADD(c.Date, INTERVAL 28 DAY) /*dateadd(DAY, 28, c.Date)*/
GROUP BY c.material, c.Date
)
SELECT p.*, c.overstock
FROM CTE c
LEFT JOIN Projected_stock p ON p.Date=c.Date and c.material=p.material
Material Date Stock Demand Supply Projected Target_Stock Overstock overstock
123456 2024-06-24 60 0 0 60 24 Yes 1
123456 2024-06-26 0 4 0 56 24 Yes 1
123456 2024-06-27 0 4 0 52 24 Yes 1
123456 2024-07-02 0 0 10 62 24 Yes 1
123456 2024-07-04 0 4 0 63 24 Yes 1
123456 2024-07-04 0 4 0 67 24 Yes 1
123456 2024-07-04 0 1 0 71 24 Yes 1
123456 2024-07-04 0 1 0 72 24 Yes 1
123456 2024-07-04 0 0 1 73 24 Yes 1
123456 2024-07-04 0 0 10 72 24 Yes 1
123456 2024-07-05 0 4 0 59 24 Yes 1
123456 2024-07-11 0 0 11 70 24 Yes 1
123456 2024-07-13 0 1 0 67 24 Yes 1
123456 2024-07-13 0 1 0 68 24 Yes 1
123456 2024-07-13 0 1 0 69 24 Yes 1
123456 2024-07-14 0 4 0 63 24 Yes 1
123456 2024-07-16 0 4 0 59 24 Yes 1
123456 2024-07-18 0 4 0 66 24 Yes 1
123456 2024-07-18 0 0 11 70 24 Yes 1
123456 2024-07-19 0 1 0 64 24 Yes 1
123456 2024-07-19 0 1 0 65 24 Yes 1
123456 2024-07-21 0 1 0 57 24 Yes 1
123456 2024-07-21 0 1 0 58 24 Yes 1
123456 2024-07-21 0 1 0 59 24 Yes 1
123456 2024-07-21 0 4 0 60 24 Yes 1
123456 2024-07-25 0 4 0 62 24 Yes 1
123456 2024-07-25 0 0 9 66 24 Yes 1
123456 2024-07-30 0 0 9 107 24 Yes 1
123456 2024-07-30 0 0 9 98 24 Yes 1
123456 2024-07-30 0 0 9 89 24 Yes 1
123456 2024-07-30 0 0 9 80 24 Yes 1
123456 2024-07-30 0 0 9 71 24 Yes 1
123457 2024-06-24 30 0 0 30 24 No 0
123457 2024-06-26 0 4 0 26 24 No 0
123457 2024-06-27 0 4 0 22 24 No 0
123457 2024-07-02 0 0 10 32 24 No 0
123457 2024-07-04 0 4 0 33 24 No 0
123457 2024-07-04 0 4 0 37 24 No 0
123457 2024-07-04 0 1 0 41 24 No 0
123457 2024-07-04 0 1 0 42 24 No 0
123457 2024-07-04 0 0 1 43 24 No 0
123457 2024-07-04 0 0 10 42 24 No 0
123457 2024-07-05 0 4 0 29 24 No 0
123457 2024-07-11 0 0 11 40 24 No 0
123457 2024-07-13 0 1 0 37 24 No 0
123457 2024-07-13 0 1 0 38 24 No 0
123457 2024-07-13 0 1 0 39 24 No 0
123457 2024-07-14 0 4 0 33 24 No 0
123457 2024-07-16 0 4 0 29 24 No 0
123457 2024-07-18 0 4 0 36 24 No 0
123457 2024-07-18 0 0 11 40 24 No 0
123457 2024-07-19 0 1 0 34 24 No 0
123457 2024-07-19 0 1 0 35 24 No 0
123457 2024-07-21 0 1 0 27 24 No 0
123457 2024-07-21 0 1 0 28 24 No 0
123457 2024-07-21 0 1 0 29 24 No 0
123457 2024-07-21 0 4 0 30 24 No 0
123457 2024-07-25 0 4 0 32 24 No 0
123457 2024-07-25 0 0 9 36 24 No 0
123457 2024-07-30 0 0 9 77 24 ? ?
123457 2024-07-30 0 0 9 68 24 ? ?
123457 2024-07-30 0 0 9 59 24 ? ?
123457 2024-07-30 0 0 9 50 24 ? ?
123457 2024-07-30 0 0 9 41 24 No ?