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.
CREATE TABLE table1 (
Time TIMESTAMP,
Val_1a INT,
Val_2a INT,
Val_3a INT);
INSERT INTO table1 VALUES
('2021-11-06 13:59:53',15,10,35),
('2021-11-06 14:00:02',12,15,34),
('2021-11-06 14:05:25',11,13,35),
('2021-11-06 14:05:35',11,17,36);

CREATE TABLE table2 (
Time TIMESTAMP,
Val_1b INT,
Val_2b INT,
Val_3b INT);

INSERT INTO table2 VALUES
('2021-11-06 11:00:00',2,15,30),
('2021-11-06 12:00:00',8,12,32),
('2021-11-06 13:00:00',12,11,35);

SELECT * FROM table1;
SELECT * FROM table2;
Time Val_1a Val_2a Val_3a
2021-11-06 13:59:53 15 10 35
2021-11-06 14:00:02 12 15 34
2021-11-06 14:05:25 11 13 35
2021-11-06 14:05:35 11 17 36
Time Val_1b Val_2b Val_3b
2021-11-06 11:00:00 2 15 30
2021-11-06 12:00:00 8 12 32
2021-11-06 13:00:00 12 11 35
SELECT t1.dtm, t1.Val_2a2, t1.Val_2a1, t2.Val_1b2,
CASE WHEN Val_2a2 > Val_2a1 THEN Val_2a2-Val_2a1+Val_1b2 ELSE 0 END AS ValF
FROM
(SELECT DATE_FORMAT(time, '%Y-%m-%d %H:00:00') dtm,
SUBSTRING_INDEX(GROUP_CONCAT(Val_2a ORDER BY time),',',1) Val_2a1 ,
SUBSTRING_INDEX(GROUP_CONCAT(Val_2a ORDER BY time DESC),',',1) Val_2a2
FROM table1
GROUP BY dtm) t1
LEFT JOIN
(SELECT DATE(time) dtm,
SUBSTRING_INDEX(GROUP_CONCAT(Val_1b ORDER BY time DESC),',',1) Val_1b2
FROM table2
GROUP BY dtm) t2
ON DATE(t1.dtm)=t2.dtm;
dtm Val_2a2 Val_2a1 Val_1b2 ValF
2021-11-06 13:00:00 10 10 12 0
2021-11-06 14:00:00 17 15 12 14