mysql - 期末如何删除个人信用?

标签 mysql

我有一个系统,客户可以在任何购买中获得积分。 现在我想每三个月后强制删除此信用额。 就像...如果某人有一月二月三月的学分...现在当四月到来时它会自动删除一月月份的学分并重新计算接下来的 3 个月。

这里的信用条目表示客户已经购买了一些东西...因此他们的帐户记入了一些积分。

借方条目表示他们将此贷方用作订单中的资金

我有如下所示的表格条目

<小时/>
              (cr_dr)      (cr_dr) 
               Credit        Debit

(created_on)       
Jan             10            00

                00            05

(created_on)
Feb             10            00

                00            05                    

                00            07
(created_on)
Mar             10            00

                00            03

                00            07
(created_on)
Apr             10            00

对于一月、二月、三月的情况

Total Credits(for last 3 months only ) = Total Credit - Total Debit

                                     3 =  30 - 27

这 3 个积分将转到下个月(四月),但如何从中删除第一个月(一月)积分。

SELECT SUM(COALESCE(CASE WHEN cr_dr = 'Credit' THEN amount END,0)) - 
SUM(COALESCE(CASE WHEN cr_dr = 'Debit' THEN amount END,0)) balance 
FROM cb_customer_credit_log WHERE coupon_assignee = "1"  AND    created_on >= now() - interval 3 month ")

最佳答案

我相信你需要这样的东西。

date(now() - interval 3 month)   

此代码仅计算 3 个月内的日期和时间记录。从字面意义上讲,无论每月 29、30、31 天,都是 90 天之前。如果你从本月 9 号开始,那么你最终会是过去的 9 号。让事情变得更容易。

now() 是当前系统时间。 Interval 3 Month ...是计算从当前系统时间回溯3个月的命令。
您必须将整行与条件 >=(大于或等于)配对

示例:

activitydatetime >= date(now() - interval 3 month)   

关于mysql - 期末如何删除个人信用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57986420/

相关文章:

php - 获取最后插入的 ID 并将其用作 PHP/MySQL 的参数

PHP:使用名称从列中获取值

mysql - 如何从 CloudBees Jenkins 访问 MySQL?

重复的 MySQL - 插入但不更新

mysql喜欢所有的单词排列

php - Laravel 5 [PDOException] SQLSTATE[42000] : Syntax error or access violation:

mysql - 如何消除列中相同值的重复?

php - 如何修复消息 : SQLSTATE[08004] [1040] Too many connections

php - MySQL 导出到 Excel 写入整个 PHP 文件

php - 无法添加数据或未在购物车中使用 $_SESSION 显示