Вы не указали СУБД.
В SQL Server работает следующее
WITH table1(id1, total_amount, final_amount, p_id)
AS (SELECT 1,500,505,10 UNION ALL
SELECT 2,700,710,20 UNION ALL
SELECT 3,400,400,10 UNION ALL
SELECT 4,450,460,20 UNION ALL
SELECT 5,300,300,10),
table2(id2, month, amount, id1)
AS (SELECT 1,'jan',300,1 UNION ALL
SELECT 2,'feb',200,1 UNION ALL
SELECT 3,'jan',200,2 UNION ALL
SELECT 4,'feb',500,2 UNION ALL
SELECT 5,'feb',400,3 UNION ALL
SELECT 6,'jan',150,4 UNION ALL
SELECT 7,'feb',300,4 UNION ALL
SELECT 8,'jan',300,5),
t1
AS (SELECT p_id,SUM(final_amount) AS total_amount
FROM table1
GROUP BY p_id),
t2
AS (SELECT p_id,
SUM(CASE WHEN month = 'jan' THEN amount END) AS jan,
SUM(CASE WHEN month = 'feb' THEN amount END) AS feb
FROM table2
JOIN table1
ON table1.id1 = table2.id1
GROUP BY p_id)
SELECT Row_number() OVER (ORDER BY (SELECT 0)) AS id3,t1.p_id,jan,feb,
total_amount
FROM t1
JOIN t2
ON t1.p_id = t2.p_id