У меня есть таблица транзакций и таблица тегов. Я хочу получить сумму всех транзакций в таблице транзакций, сгруппированных по тегам. Существует два типа транзакции: «бюджет» и «факт»
Этот запрос вернет мне то, что я хочу для «бюджетных» транзакций:
SELECT tg.name as tag, SUM(amount) as budgetTotal
FROM transaction tx
JOIN transaction_tag tt ON tt.transaction_id = tx.id
JOIN tag tg ON tg.id = tt.tag_id
WHERE tx.type = "budget"
AND tx.date >= '2011-07-15'
AND tx.date < '2011-08-15'
GROUP BY tg.name
И, конечно, почти такой же запрос для «реальных» транзакций:
SELECT tg.name as tag, SUM(amount) as actualTotal
FROM transaction tx
JOIN transaction_tag tt ON tt.transaction_id = tx.id
JOIN tag tg ON tg.id = tt.tag_id
WHERE tx.type = "actual"
AND tx.date >= '2011-07-15'
AND tx.date < '2011-08-15'
GROUP BY tg.name
Мой вопрос: как сгруппировать результаты этих двух запросов в один, чтобы я получил одну таблицу результатов с тремя столбцами: tag, budgetTotal и actualTotal?