Ребята имеют три столбца, хотят сложить значения из двух из них и сравнить результат с другой таблицей.
table_a
item | value |
A | 20 |
B | 30 |
A | 20 |
table_b
item | value |
A | 40 |
A | 10 |
C | 20 |
table_c
item | value_max |
A | 100 |
B | 100 |
C | 200 |
Результаты, которые я хочу достичь, должны выглядеть следующим образом:
item | value_sum | value_max | balance |
A | 90 | 100 | 10 |
B | 30 | 100 | 70 |
C | 20 | 200 | 180 |
Мой код выглядит так:
select sum(value) as value_sum,
sum(value) as value_sum, value_max-sum(value) as balance
from (
select value
from table_a LEFT JOIN value_max on table_a.item = table_c.value_max
union all
select value
from table_b LEFT JOIN value_max on table_b.item = table_c.value_max
) t LEFT JOIN value_max on item = table_c.value_max GROUP by item
Но здесь что-то не так. Пожалуйста, помогите:)