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 targets(
name VARCHAR(70) NOT NULL
,target INTEGER NOT NULL
);
INSERT INTO targets
(name,target) VALUES
('name1',6),
('name2',3),
('name3',2);

CREATE TABLE records(
id INTEGER NOT NULL
,name VARCHAR(70) NOT NULL
,created_on DATE NOT NULL
);
INSERT INTO records
(id,name,created_on) VALUES
(546,'name1','2022-06-02'),
(547,'name2','2022-06-04'),
(548,'name2','2022-06-07');



select
targets.name,
target,
IF(current is null , 0, current) as current
from targets
left join (
SELECT name, COUNT(id) current FROM records
WHERE MONTH(created_on) = MONTH(CURRENT_DATE())
AND YEAR(created_on) = YEAR(CURRENT_DATE())
GROUP BY name) records
on records.name=targets.name
name target current
name1 6 1
name2 3 2
name3 2 0