SELECT id, amount FROM report
I need amount
to be amount
if report.type='P'
and -amount
if report.type='N'
. How do I add this to the above query?
The MySQL IF() function is used for validating a condition. The IF() function returns a value if the condition is TRUE and another value if the condition is FALSE. The MySQL IF() function can return values that can be either numeric or strings depending upon the context in which the function is used.
The SELECT statement is used to select data from a database. The data returned is stored in a result table, called the result-set.
SELECT id, IF(type = 'P', amount, amount * -1) as amount FROM report
See http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html.
Additionally, you could handle when the condition is null. In the case of a null amount:
SELECT id, IF(type = 'P', IFNULL(amount,0), IFNULL(amount,0) * -1) as amount FROM report
The part IFNULL(amount,0)
means when amount is not null return amount else return 0.
Use a case
statement:
select id, case report.type when 'P' then amount when 'N' then -amount end as amount from `report`
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With