2016-10-01 3 views
0

私はmerchant_credit_historyテーブルを持っています。ここでは、加盟店のクレジット、デビットおよびトランザクションタイプを保存しています。複数のケースに基づくMysqlのフェッチ・レコード

トランザクションタイプに基づいてCREDITまたはDEBITの合計を計算します。

SELECT SUM(ABS(借方))dealer_credit としてmerchant_credits_history FROM WHERE TRANSACTION_TYPE = 'premium_debit' とmerchant_id =」:enter image description here

レコード

は、私はこれを試してみましたx '

UNION

SELECT SUM(ABS(クレジット))はmerchant_credits_history WHERE TRANSACTION_TYPE = 'margin_credit' とmerchant_id = 'X'

enter image description here

として置くアウトを得ることから
をdealer_margin_earnedとして

私はより良いクエリと別のキー値ペアの値を持つことができればと思います

答えて

0
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'; 

したがって、各merchant_idのクレジットデビット値が得られます。

0
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') 
0

は、この方法を試してください。

SELECT SUM(ABS(credit)) as Credit, SUM(ABS(debit)) AS Debit, 
transaction_type FROM merchant_credits_history merchant_id='x' 
GROUP BY (transaction_type);