如何在mysql中解决此查询
我有MySQL表名daily_transactions,它有五列,即如何在mysql中解决此查询,mysql,sql,Mysql,Sql,我有MySQL表名daily_transactions,它有五列,即 id | username | credit | debit | transaction_date 如果用户将100美元贷记到其帐户中,它将被插入表中,如果有借记(如果用户使用我们的服务,比如20美元),它也将被记录,就像银行对账单历史记录一样 现在的问题是,我如何获得在过去3个月内完成了500美元到2000美元总积分的用户列表。也就是说,对每个用户的所有信用进行合计,如果在过去3个月内至少有500美元到2000美元,则显
id | username | credit | debit | transaction_date
如果用户将100美元贷记到其帐户中,它将被插入表中,如果有借记(如果用户使用我们的服务,比如20美元),它也将被记录,就像银行对账单历史记录一样
现在的问题是,我如何获得在过去3个月内完成了500美元到2000美元总积分的用户列表。也就是说,对每个用户的所有信用进行合计,如果在过去3个月内至少有500美元到2000美元,则显示该金额
如果您在下面尝试了此查询,但它不起作用
SELECT username,
SUM(debit)
FROM daily_transactions
WHERE sum(credit) >=500
AND SUM(credit)<=2000
AND DATEDIFF(NOW(),date_details)<=90;
选择用户名,
总额(借方)
来自日常交易
其中金额(信用)>=500
和SUM(credit)您需要一个具有
条款:
SELECT username,SUM(debit)
FROM daily_transactions
WHERE date_details >= CURDATE() - INTERVAL 90 DAY
GROUP BY username
HAVING SUM(credit) >= 500 AND SUM(credit) <= 2000
选择用户名、金额(借方)
来自日常交易
其中date\u details>=CURDATE()-间隔90天
按用户名分组
拥有SUM(credit)>=500和SUM(credit)拥有
是一个组过滤器,因此您需要在这里拥有
SELECT username,SUM(debit)
FROM daily_transactions
WHERE DATEDIFF(NOW(),date_details)<=90;
group by username
having sum(credit) >=500 AND SUM(credit)<=2000
选择用户名、金额(借方)
来自日常交易
其中DATEDIFF(NOW(),date_details)=500和SUM(贷方)