sql - Case Statement having no effect on output -


i trying sums of donations based on bank approval status , grouped gift kind. however, script outputs rr , nr donations on separate lines (see below script). seems case statements aren't working @ all.

select gift_kind,     case         when c.bank_approval_status = 'ap'              sum(c.charge_amount) end approved,       case             when c.bank_approval_status in ('rr','nr')              sum(c.charge_amount) end rejected,     case             when c.bank_approval_status = 'ar'              sum(c.charge_amount)*-1 end refunded,     case          when c.bank_approval_status not in ('ar','ap','rr','nr')               sum(c.charge_amount) end other_status charge_log c, transactions t c.account_id=t.account_id , c.process_id= 'chg - 02532' , c.gift_date=t.gift_date , c.gift_seq=t.gift_seq , c.pledge_number=t.pledge_number , t.sts='a' group  t.fund_type, t.gift_kind, c.bank_approval_status order gift_kind asc 

i believe looking logic:

select gift_kind,        sum(case when c.bank_approval_status = 'ap' c.charge_amount             end) approved,          sum(case when c.bank_approval_status in ('rr', 'nr') c.charge_amount            end) rejected,        sum(case when c.bank_approval_status in ('ar') c.charge_amount*-1            end) refunded,        sum(case when c.bank_approval_status not in ('ar','ap','rr','nr') c.charge_amount            end) other_status charge_log c join      transactions t      on c.account_id = t.account_id ,         c.gift_date = t.gift_date ,         c.gift_seq = t.gift_seq ,         c.pledge_number = t.pledge_number c.process_id = 'chg - 02532' , t.sts = 'a' group t.fund_type, t.gift_kind order gift_kind asc 

notes:

  • learn use proper join syntax. never use commas in from clause.
  • the join conditions should in on clause, not where clause.
  • the case argument sum().
  • remove bank_approval_status group by.
  • i don't know why fund_type in group by. may have reason left it.

Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -