gpt4 book ai didi

用于获取最近 12 个月内付款演变图的 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 00:54:48 26 4
gpt4 key购买 nike

我的应用存储客户完成的付款。在每个月底,计算当月支付的总额并将其提供给所有者:我有一个付款表,其中包含以下字段(最重要的)。

id, datepaid, endingdate(实际月份的截止日期),ammount, type, code, ...

现在,有一年的付款,我被要求创建最近 12 个月的付款演变(总计)图表。

通过阅读等,这是我得到的查询,但我不知道如何获取最近 12 个月的总计(如果该月未付款,则获取 0)。 ..

    SELECT id, endingdate, datepaid, SUM(ammount) AS total
FROM `sis_payments`
WHERE endingdate >= DATE_SUB( CURDATE( ) , INTERVAL 1 YEAR )
GROUP BY endingdate

我知道它可能设计得很糟糕,但这是给我的……有什么线索吗?谢谢

最佳答案

您可以尝试使用 GROUP BY YEAR(endingdate)、MONTH(endingdate) 或使用 DATE_FORMAT 的等效方法。看看 Mysql documentation for DATE_FORMAT .

此外,不要在 SELECT 子句中包含日期字段(endingdatedatepaid)。相反,使用 YEAR(endingdate), MONTH(endingdate),就像在 GROUP BY 中一样。

当月没有付款时获取 0 在 SQL 中稍微复杂一些。运行查询后,您可以在 PHP 中处理它。

更新

使用 DATE_FORMAT 的示例:

SELECT 
DATE_FORMAT(mrendido,'%y-%m') as xyearmonth,
SUM(FORMAT(ammountpaid,2)) AS ammtotal
FROM sis_pyments
WHERE mrendido >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)
GROUP BY xyearmonth
ORDER BY xyearmonth ASC

关于用于获取最近 12 个月内付款演变图的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6600396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com