2013-04-03 62 views
1
set @total_balance=0; 
select total_balance=if(a.transaction_type='+c') then total_balance=total_balance+a.tran_amount 
else if(a.transaction_type='-p'or '-r') then total_balance=total_balance-a.tran_amount 
END 
from lib_user_account a 
where employee_Id='1004'; 
+3

想到使用金額的功能? –

回答

2
SUM(IF(a.transaction_type='+c', a.tran_amount, -a.tran_amount)) 
1

這將是更好地使用和功能在查詢中爲zerkms已經提及,但回答你如何在MySQL中,你使用用戶定義的變量問題可以在查詢中使用它通過以下方式

select 
    @total_balance:=if(a.transaction_type='+c', @total_balance+a.tran_amount, if(a.transaction_type='-p' or a.transaction_type='-r', @total_balance-a.tran_amount, a.tran_amount)) 
from 
    lib_user_account a 
join 
    (select @total_balance:=0) userVar 
where 
    employee_Id='1004'; 

REFER FOR MORE INFO ABOUT USER DEFIND VARIABLE

+0

但結果是行方式我想要一個最終值。 – Shree

+0

爲它添加group by子句... GROUP BY employee_id – Meherzad

+0

@Meherzad:在GROUP BY後面只有'a.transaction_type'和'a.tran_amount'值不一致 – zerkms