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