SQL Syntax error in case statement -


i have 2 database tables. 1 tracks placements of orders made company, , other tracks payments made company orders.

i'd create sql query, displays each order id, total amount order, , amount outstanding order, yet paid. customers allowed pay in 'instalments' say, purpose calculate total outstanding , display it.

here have far, returning 'null' when no payments have been made. means there no records based on specific order, , total amount paid customer = 0. therefore amount outstanding equal total amount.

i sql code display total amount of order when entire amount still outstanding, instead of null.

how can done?

i tried case statement think syntax wrong.

here's version without case statement, returns null when no payments have been made:

 select      pb_orders.id 'order id', pb_orders.order_total 'total',      sum(pb_payments.amount) 'amount paid', pb_orders.order_total -      sum(pb_payments.amount) 'outstanding amount'        pb_orders   inner join       pb_payments on pb_orders.id = pb_payments.link_id         pb_orders.id = 1556 

and here attempt @ case statement:

select     pb_orders.id 'order id', pb_orders.order_total 'total',     sum(pb_payments.amount) 'amount paid'          when 'amount paid' = 'null'             'amount paid' = pb_orders.order_total,      pb_orders.order_total - sum(pb_payments.amount) 'outstanding amount',        pb_orders  inner join      pb_payments on pb_orders.id = pb_payments.link_id       pb_orders.id = 1555 

you need coalesce() turn null values else:

select o.id orderid, o.order_total total,        sum(p.amount) amountpaid,        (o.order_total - coalesce(sum(p.amount), 0) ) outstandingamount pb_orders o inner join      pb_payments p      on o.id = p.link_id  o.id = 1556; 

also note table aliases make query easier write , read.

i recommend never use single quotes define column aliases. bad habit leads trouble -- 1 day, refer column in single quotes, column interpreted string constant instead.


Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -