MySql с несколькими суммами проверяет один столбец

Таблица: счет-фактура

id   amount     status  
1    100        PAID    
1    200        PAID    
1    500        UNPAID
1    100        UNPAID 

Я хочу сумму на основе статуса
Результат:

id      paid_amt    unpaid_amt
1       300         600

Не могли бы вы предоставить решение?

1 ответ

Вам нужен поворотный кейс перед суммированием для достижения желаемого результата.

Попробуй это:

select 
  id,
  sum( paid_amount ) as paid_amount,
  sum( unpaid_amount ) as unpaid_amount
from(
  SELECT
    id,
    case status when 'PAID' then amount else 0 end paid_amount,
    case status when 'UNPAID' then amount else 0 end unpaid_amount
  FROM Invoice
) pay_report
group by id
Другие вопросы по тегам