Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql中解决此查询_Mysql_Sql - Fatal编程技术网

如何在mysql中解决此查询

如何在mysql中解决此查询,mysql,sql,Mysql,Sql,我有MySQL表名daily_transactions,它有五列,即 id | username | credit | debit | transaction_date 如果用户将100美元贷记到其帐户中,它将被插入表中,如果有借记(如果用户使用我们的服务,比如20美元),它也将被记录,就像银行对账单历史记录一样 现在的问题是,我如何获得在过去3个月内完成了500美元到2000美元总积分的用户列表。也就是说,对每个用户的所有信用进行合计,如果在过去3个月内至少有500美元到2000美元,则显

我有MySQL表名daily_transactions,它有五列,即

 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(贷方)