Обновление №1: запрос дает мне синтаксическую ошибку в строке левого соединения (хотя независимое выполнение запроса в левом соединении работает отлично)
SELECT b1.company_id, ((sum(b1.credit)-sum(b1.debit)) as 'Balance'
FROM MyTable b1
JOIN CustomerInfoTable c on c.id = b1.company_id
#Filter for Clients of particular brand, package and active status
where c.brand_id = 2 and c.status = 2 and c.package_id = 3
LEFT JOIN
(
SELECT b2.company_id, sum(b2.debit) as 'Current_Usage'
FROM MyTable b2
WHERE year(b2.timestamp) = '2012' and month(b2.timestamp) = '06'
GROUP BY b2.company_id
)
b3 on b3.company_id = b1.company_id
group by b1.company_id;
Исходное сообщение:
Я слежу за дебетом и кредитом в одной таблице. Таблица имеет следующую схему:
| company_id | timestamp | credit | debit |
| 10 | MAY-25 | 100 | 000 |
| 11 | MAY-25 | 000 | 054 |
| 10 | MAY-28 | 000 | 040 |
| 12 | JUN-01 | 100 | 000 |
| 10 | JUN-25 | 150 | 000 |
| 10 | JUN-25 | 000 | 025 |
В качестве результата я хочу видеть:
| Grouped by: company_id | Balance* | Current_Usage (in June) |
| 10 | 185 | 25 |
| 12 | 100 | 0 |
| 11 | -54 | 0 |
Баланс: Рассчитывается по (сумма(кредит) - сумма(дебет))* - метка времени не имеет значения
Current_Usage: Рассчитывается по сумме(дебет) - но только для дебета в ИЮНЕ.
Проблема: если я сразу отфильтрую по метке времени JUN, он не вычисляет баланс за все время, а только баланс любых транзакций в июне.
Как я могу рассчитать текущее использование по месяцам, но баланс по всем транзакциям в таблице. У меня все работает, за исключением того, что он фильтрует только результаты JUN в текущий расчет использования в моем коде:
SELECT b.company_id, ((sum(b.credit)-sum(b.debit))/1024/1024/1024/1024) as 'BW_remaining', sum(b.debit/1024/1024/1024/1024/28*30) as 'Usage_per_month'
FROM mytable b
#How to filter this only for the current_usage calculation?
WHERE month(a.timestamp) = 'JUN' and a.credit = 0
#Group by company in order to sum all entries for balance
group by b.company_id
order by b.balance desc;