MySQL总和有条件

时间:2018-01-03 09:05:45

标签: mysql sum

我有这样的表

----------------------------------------------------------------------
| TransactionDate | Price      | DownPayment | Status   |  DatePaid   |
 ---------------------------------------------------------------------
 2018-01-03       | 1000       | 1000        | PAID OFF |  2018-01-03
 2018-01-03       | 1000       | 500         | -500     |  2018-01-03
 2018-01-01       | 1000       | 0           | PAID OFF |  2018-01-03

根据表格,我有3排,第1排当有人进行交易而刚刚还清了他们的交易,第2位是有人支付了一半的价格,最后一位是有人做过交易之前,但刚刚付款它今天。

我想根据日期付款计算我今天得到的钱,在该表上,SUM应为2500.

1 个答案:

答案 0 :(得分:2)

在mysql中我们可以使用像这样的case语句

select SUM(CASE WHEN Status = 'PAID OFF' THEN Price ELSE Price/2 END) as total where date(DatePaid) = CURDATE()

但是表格设计不是那么好来执行这些聚合函数。特别是状态栏。