Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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 SQL每月统计记录上的未结项,但仍未批准_Mysql_Sql_Mysql Workbench - Fatal编程技术网

Mysql SQL每月统计记录上的未结项,但仍未批准

Mysql SQL每月统计记录上的未结项,但仍未批准,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我有一张日历表,就是这个 c_calendardate 1/1/2015 2/3/2015 . . . 10/18/2015 10/19/2015 以及物料申请上的交易记录 +------------+------------+-------------+-----------+----------+ | Requestor | Item | Date_Entry | Approver | Status | +------------+------------+-----

我有一张日历表,就是这个

c_calendardate
1/1/2015
2/3/2015
.
.
.
10/18/2015
10/19/2015
以及物料申请上的交易记录

+------------+------------+-------------+-----------+----------+
| Requestor  |   Item     | Date_Entry  | Approver  |  Status  |
+------------+------------+-------------+-----------+----------+
| Bob        | PCB        | 1/2/2015    | Admin     | Open     |
| Bob        | PCB        | 3/19/2015   | Admin     | Approved |
| May        | UTP Cable  | 1/1/2015    | Admin     | Open     |
| May        | UTP Cable  | 4/20/2015   | Admin     | Approved |
| Joseph     | RJ45       | 2/10/2015   | Admin     | Open     |
| Joseph     | RJ46       | 6/3/2015    | Admin     | Approved |
+------------+------------+-------------+-----------+----------+
我想要的输出是这个

+------------+-----------------------+
|   Month    | Total_Open_Each_Month |
+------------+-----------------------+
| 2015-Jan   |                     2 |
| 2015-Feb   |                     3 |
| 2015-Mar   |                     3 |
| 2015-Apr   |                     2 |
| 2015-May   |                     1 |
| 2015-Jun   |                     1 |
| 2015-Jul   |                     0 |
| 2015-Aug   |                     0 |
| 2015-Sept  |                     0 |
| 2015-Oct   |                     0 |
| 2015-Nov   |                     0 |
| 2015-Dec   |                     0 |
+------------+-----------------------+

上面的输出是每月计算每个未结项目,如果记录仍然未被批准,则仍将每月计算,有人可以帮助我查询吗?

您可以使用
DATE\u FORMAT()
groupby

SELECT 
 DATE_FORMAT(STR_TO_DATE(c_calendardate,'%m/%d/%Y'),'%Y-%b'), 
 COUNT(status) 
FROM yourcalendar 
 LEFT JOIN materialrequest on (c_calendardate=Date_Entry AND status='Open')
GROUP BY DATE_FORMAT(STR_TO_DATE(c_calendardate,'%m/%d/%Y'),'%Y-%b');

您可以使用
DATE\u FORMAT()
groupby

SELECT 
 DATE_FORMAT(STR_TO_DATE(c_calendardate,'%m/%d/%Y'),'%Y-%b'), 
 COUNT(status) 
FROM yourcalendar 
 LEFT JOIN materialrequest on (c_calendardate=Date_Entry AND status='Open')
GROUP BY DATE_FORMAT(STR_TO_DATE(c_calendardate,'%m/%d/%Y'),'%Y-%b');

你可以这样试试

SELECT count(id),
STR_TO_DATE(Date_Entry, '%m/%d/%Y') as date1
MONTHNAME(STR_TO_DATE(Date_Entry, '%m/%d/%Y') ),
YEAR(STR_TO_DATE(Date_Entry, '%m/%d/%Y') )
FROM
Table_name
WHERE
Status =  'open'
group by date1

你可以这样试试

SELECT count(id),
STR_TO_DATE(Date_Entry, '%m/%d/%Y') as date1
MONTHNAME(STR_TO_DATE(Date_Entry, '%m/%d/%Y') ),
YEAR(STR_TO_DATE(Date_Entry, '%m/%d/%Y') )
FROM
Table_name
WHERE
Status =  'open'
group by date1


您有一个类似于db中的xml或html的事务行?@espongha,我很有信心,将您的html表转换为ascii表。如果这不是您想要的,请回滚编辑。您已经做了什么吗?为什么需要c_calendardate表?这是一个表格选择、按日期分组\格式和计数。@vhu感谢我花了很长时间编辑表格table@AnthonM.,我需要在一年的报告中每月显示未结项目,所以我想我需要将其引用到日历表中,你有什么好建议吗?你有一个类似于db的xml或html事务行?@espongha,我满怀信心地将HTML表转换成ascii表。如果这不是您想要的,请回滚编辑。您已经做了什么吗?为什么需要c_calendardate表?这是一个表格选择、按日期分组\格式和计数。@vhu感谢我花了很长时间编辑表格table@AnthonM.,我需要在一年的报告中每月显示未结项目,所以我想我需要将其引用到日历表中,你有什么好建议吗?谢谢你回答我的问题,但此查询仅计算当月的未结项目,我需要的是,在未批准的情况下,每月仍将计算这些项目。您的意思是,Bob在1月份请求的PCB应计算为自
Date\u Entry
到今天为止的所有月份的未结项目(
NOW()
)-例如,针对1月、2月、3月,4月、6月、7月、8月、9月和10月?如果您在我的表格中提及Bob PCB请求,则应在1月、2月至3月计算,因为Bob PCB请求已于2015年3月19日获得管理员批准,并且不会在4月之后计算。对于未获得批准的项目,应如何处理?直到今天(现在())仍将计算该请求。感谢您回答我的问题,但此查询仅计算当月的未结项目,我需要的是,在尚未批准的情况下,每月仍将计算这些项目。您的意思是,Bob在1月份请求的PCB应计算为从
日期\u条目
到今天为止的所有月份的未结项目(
NOW()
)-例如针对1月、2月、3月、4月、6月、7月、8月、9月和10月?如果您在我的表格中提及Bob PCB请求,则应在1月计算,2月至3月,因为Bob PCB请求已于2015年3月19日获得管理员批准,并且不会在4月以后计算。对于未获得批准的项目,应如何处理?直到今天(现在())仍会计算。