Aテーブルは金額とコードID BテーブルにはコードIDと分類。毎日1回追加される
Aテーブル
+---------+--------+-------+ |
article | ccode| total | userID
+---------+--------+-------+
| 1 | 3131 | 1995 | 3
| 2 | 3130 | 2000 | 3
| 3 | 3131 | 1995 | 2
+---------+--------+-------+
Bテーブル
+---------+--------+-------+ |
article | code| janru | Date
+---------+--------+-------+
| 1 | 3131 | 科学 | 2022-01-02
| 2 | 3130 | | 通信 | 2022-01-02
| 3 | 3131 | 科学 | 2021-12-30
| 4 | 3130 | | 通信 | 2021-12-30
+---------+--------+-------+
select
 sum(A.total) as total
from a_table as A
join b_table as B ON B.code = A.ccode
where A,userID = 3
AND B.Date = (SELECT MAX(Date) FROM b_table)
GROUP BY B.janru参考 MySQL 5.6 リファレンスマニュアル / ... / 特定のカラムの最大値が格納されている行
https://dev.mysql.com/doc/refman/5.6/ja/example-maximum-row.html