2 SQL запроса в одном разными условиями
Есть 4 поле: contract_id, spec_summ - сумма спецификации, oplacheno - оплаченная сумма, spec_status - статус спецификации: отгружена или еще нет
contract_id | spec_summ | oplacheno | spec_status |
---|---|---|---|
1 | 100 | 100 | 1 |
1 | 75 | 75 | 0 |
2 | 20 | 0 | 1 |
2 | 30 | 0 | 0 |
Нужен запрос выборки, который должен суммировать oplacheno, также суммировать spec_summ при условии где spec_status = 1 сгруппировав по contract_id
То есть такой массив:
contract_id | spec_summ | oplacheno | spec_status |
---|---|---|---|
1 | 100 | 175 | 1 |
2 | 20 | 0 | 1 |
Если пробовать так:
SELECT `contract_id`,
SUM(`spec_summ`) `spec_summ`,
SUM(`oplacheno`) `oplacheno`
FROM `specification` WHERE `spec_status`=1 GROUP BY `contract_id`
то суммирование поле oplacheno также происходит только там где spec_status=1, а не все оплаченные суммы
Пробовал так, но все равно не выдает нужного результата
SELECT `contract_id`,
SUM(`spec_summ`) `spec_summ`,
SUM(`oplacheno`) `oplacheno`,
CASE
WHEN `spec_status` = 3 THEN SUM(`spec_summ`)
END `FieldELSE`
FROM `specification` GROUP BY `contract_id`