繁体   English   中英

PHP计算每天节省的文档总数

[英]PHP Calculate total document saves per day

我正在尝试每天节省的文件总数。 但是我不知道如何。 这是我的数据库中的列及其数据。

report_id    doc_date   total_doc 
- 1          2017-06-06  1  
- 2          2017-06-23  1  
- 3          2017-06-14  1  
- 4          2017-06-12  1  
- 5          2017-06-16  1
- 6          2017-06-21  1
- 7          2017-06-14  1
- 9          2017-06-13  1
- 10         2017-06-21  1
- 11         2017-06-12  1
- 12         2017-06-18  1
- 13         2017-06-12  1
.....

上面有类似的日期,例如,

- 3          2017-06-14  1
- 7          2017-06-14  1 

我需要一个SQL查询,该查询将计算并显示每天节省的总文档数。 因此,对于2017年6月14日,总数为2。 仅供参考,total_doc自动等于1。 更新:并显示当天保存的文档总数。

尝试以下操作(将table_name设置为表的名称):

SET @row_count = 0;
SELECT (@row_count:=@row_count+1) AS totalSaves FROM table_name WHERE doc_date='2017-06-14'

第一行定义变量row_count ,并将其设置为0

第二行遍历数据库,查找日期为2017-06-14所有行,每增加一行row_count

然后,我们在标记为totalSaves的列中SELECT存储在row_count作为单行的最终数字。

table_name设置为表的名称

SELECT doc_date, sum(total_doc) AS total 
FROM table_name
GROUP BY doc_date

用表名更改table_name。

如果您只想显示1个日期:

SELECT doc_date, sum(total_doc) AS total 
FROM table_name
WHERE doc_date = '2017-06-14'
GROUP BY doc_date
SELECT 
    doc_date,
    count(doc_date) AS saves
FROM documents
GROUP BY doc_date
ORDER BY doc_date ASC;

要么

SELECT
    doc_date,
    sum(total_doc) AS saves
FROM documents
GROUP BY doc_date
ORDER BY doc_date ASC;

注意事项:

1)如果使用第一个选项,则可以删除列total_doc 这也是我的建议。 doc_date列中的日期值具有良好的mysql格式,因此您可以对其进行可靠的操作。

2)如果需要,可以按doc_date降序对记录进行排序。

3)当使用诸如countsum类的函数时,不要忘记对列进行别名(就像我对AS saves所做的那样)。 因为这样您也可以使用HAVING过滤器。 像这样-每天保存一次以上的所有文档:

SELECT 
    doc_date,
    count(doc_date) AS saves
FROM documents
GROUP BY doc_date
HAVING saves > 1
ORDER BY doc_date ASC;

然后,您还可以在指定的日期仅按一个保存的文档进行过滤:

SELECT 
    doc_date,
    count(doc_date) AS saves
FROM documents
WHERE doc_date = "2017-06-12"
GROUP BY doc_date
HAVING saves > 1
ORDER BY doc_date ASC;

4)或者,您也可以根据需要忽略HAVINGdoc_date 这将为您提供在指定日期保存的文档。

SELECT count(doc_date) AS saves
FROM documents
WHERE doc_date = "2017-06-12"
GROUP BY doc_date
ORDER BY doc_date ASC;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM