php - 根据日期获取总金额

标签 php mysql mysqli

付款历史表

==========================
UserId | Amount | Date
==========================
 1     | 300    | 2014-06-26
 3     | 300    | 2014-06-26
 2     | 200    | 2014-06-26
 1     | 400    | 2014-06-22
 1     | 100    | 2014-06-21 

显示两列,第一列是名为“currentEarning”的金额总和,与今天的日期相同,第二列是基于今天的前一个日期的名为“oldEarning”的金额总和。 (对于特定的 userId)请参阅输出:

输出

=====================================
UserId | currentEarning | oldEarning |
=====================================
 1     | 300            | 500

最佳答案

您可以通过一个查询来完成此操作:

SELECT
    SUM(IF(`Date` = CURRENT_DATE, AMOUNT, 0)) AS currentEarning,
    SUM(IF(`Date` < CURRENT_DATE, AMOUNT, 0)) AS oldEarning
FROM PaymentHistory
GROUP BY `UserId`

比子查询或两个单独的查询更有效。

关于php - 根据日期获取总金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24432715/

相关文章:

php - 为什么我的变量通过引用传递?

php - 通过电子邮件将评论发送到表中存储的电子邮件地址

java - 无法向 MySQL 插入记录,但没有显示错误

javascript - 完整日历 : Coloring events using IF statement

PHP/MYSQL 代码未回显成功

php - 为什么我的输出打印了 3 次?

php - 来自两列 MySQL 表的两列数组

html - 在 ruby​​ 的一个 block 中执行两个each do语句

php - 在一个查询中从多个表中选择记录

PHP重构工具