#mysql #database
#mysql #База данных
Вопрос:
У меня есть таблица merchant_credit_history, в которой я храню торговый кредит, дебет и тип транзакции.
Я хочу СУММИРОВАТЬ КРЕДИТ или ДЕБЕТ в зависимости от типа транзакции.
Записи
Я попробовал это :
ВЫБЕРИТЕ SUM(ABS(debit)) как dealer_credit ИЗ merchant_credits_history, ГДЕ transaction_type=’premium_debit’ и merchant_id=’x’
ОБЪЕДИНЕНИЕ
ВЫБЕРИТЕ SUM(ABS(credit)) как dealer_margin_earned ИЗ merchant_credits_history, ГДЕ transaction_type=’margin_credit’ и merchant_id=’x’
и получение вывода в виде
Я был бы признателен, если бы у меня был лучший запрос, а также значения в отдельной паре ключ-значение
Ответ №1:
SELECT
SUM(CASE(WHEN transaction_type='premium_debit') THEN debit ELSE 0)) as dealer_credit,
SUM(CASE(WHEN transaction_type='margin_credit') THEN credit ELSE 0)) as dealer_margin_earned
FROM merchant_credits_history
WHERE merchant_id='x';
Таким образом, вы получаете пару значений credit, debit для каждого merchant_id.
Ответ №2:
SELECT SUM(Debit), SUM(CREDIT) FROM
(SELECT
CASE WHEN transaction_type='premium_debit' THEN debit ELSE 0 END as Debit,
CASE WHEN transaction_type='margin_credit' THEN credit ELSE 0 END as Credit
FROM Customers WHERE merchant_id='x')
Ответ №3:
Попробуйте это:
SELECT SUM(ABS(credit)) as Credit, SUM(ABS(debit)) AS Debit,
transaction_type FROM merchant_credits_history merchant_id='x'
GROUP BY (transaction_type);