这是我的Mysql表中的表数据
t_Id t_Type t_Date t_acd_Id t_acc_Id t_Amount t_Desc t_u_Id c_Id
------ ------ ---------- -------- -------- -------- ------ ------ --------
1 0 2016-01-26 266 29 400.00 1 1
2 0 2016-01-27 266 29 160.00 1 1
3 1 2016-01-28 29 266 83.30 1 1
4 2 2016-01-27 29 272 400.00 1 1
5 0 2016-01-27 266 272 300.00 1 1
6 1 2016-01-28 272 22 20.00 1 1
我想要我的结果
accout_Id rec_Amount pay_Amount
------ ---------- ----------
29 483.30 560.00
其中rec_Amount是t_acd_Id的总和,pay_Amount是t_acc_Id的总和
如何得到这个结果?
我目前的查询
选择
(SELECT SUM(t_Amount)FROM tbl_transactions WHEREt_acd_Id = 29)AS rec_Amount,
(SELECT SUM(t_Amount)FROM tbl_transactions WHEREt_acc_Id = 29)AS pay_Amount
FROM tbl_transactions
它给出了多行
最佳答案 此查询仅满足上述要求(对于单个帐户).如果您想获得所有帐户的结果,则需要按帐户对记录进行分组.
试试这个(这是根据你的要求):
SELECT CASE
WHEN t_acc_id = 29 THEN t_acc_id
WHEN t_acd_id = 29 THEN t_acd_id
END account_id,
Sum(CASE
WHEN t_acd_id = 29 THEN t_amount
ELSE 0
END) rec_Amount,
Sum(CASE
WHEN t_acc_id = 29 THEN t_amount
ELSE 0
END) pay_Amount
FROM tbl_transactions
WHERE t_acc_id = 29
OR t_acd_id = 29