Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 选择上次活动发生在3个月前的位置_Mysql_Sql_Select - Fatal编程技术网

Mysql 选择上次活动发生在3个月前的位置

Mysql 选择上次活动发生在3个月前的位置,mysql,sql,select,Mysql,Sql,Select,我有一个移动电话发票表,相关列有移动电话账户id(INT),计费结束日期(日期),以及数据使用情况\u GB 每个账户每月都有一行。我正在尝试获取过去三个月内每年都没有使用数据的帐户列表 一般来说,我对数据库相当陌生,所以我甚至不确定应该搜索什么语法,或者应该采取什么方法 当然,我可以选择,其中data\u usage\u GB=0.000,MONTH(billing\u end\u date)=MONTH(current\u date())-1,但这只提供了1个月范围内的信息。我不知道如何将过

我有一个移动电话发票表,相关列有
移动电话账户id(INT)
计费结束日期(日期)
,以及
数据使用情况\u GB

每个账户每月都有一行。我正在尝试获取过去三个月内每年都没有使用数据的帐户列表

一般来说,我对数据库相当陌生,所以我甚至不确定应该搜索什么语法,或者应该采取什么方法


当然,我可以选择
,其中data\u usage\u GB=0.000,MONTH(billing\u end\u date)=MONTH(current\u date())-1
,但这只提供了1个月范围内的信息。我不知道如何将过去三个月中每个月的
data\u usage\u GB=0.000
结果组合在一起。

我会按帐户分组,获取每个结果的最长日期,然后使用
having
子句对其进行筛选:

SELECT   cellular_account_id
FROM     invoices
GROUP BY cellular_account_id
HAVING   MAX(billing_end_date) < DATE_SUB(CURRENT_DATE, INTERVAL 3 MONTH)
选择手机\u账户\u id
从发票
按手机号码分组
最大(计费结束日期)
如果在过去三个月内不存在任何发票,则要选择账户(显然是从asccounts表中选择)。SQL有一个
不存在
子句。查一查。您还应该看看他们文档中的MySQL日期/时间函数。到目前为止,您尝试了什么?@Eric-到目前为止,我在某个特定月份尝试了简单的select语句-这很好,但它没有得到我要查找的聚合数据。尽管如此,我还是应该提前提到这一点。感谢提醒,原始问题已被编辑。
GROUP BY。。。拥有…
是我错过的一点,谢谢!为了我的工作,我不得不一次学习一点MySQL,所以有很多这样的差距。现在,我有一些东西可以搜索,以了解更多关于我可以用它做什么。我最后使用了以下命令:
SELECT*FROM cellular\u invoices,其中data\u usage\u GB=0.000按最大(计费结束日期)