简体   繁体   English

MySQL / PHP按日期范围生成值

[英]MySQL/PHP to generate values by date range

I've been reading plenty about crosstab reports (Pivot Tables) in PHP and I've been trying to complete a report but I'm stuck. 我已经阅读了很多有关PHP交叉表报表(数据透视表)的信息,并且我一直在尝试完成一份报表,但是我遇到了麻烦。

I have a DB Table with report_date, employee_name, employee_id, leader_name, leader_id, employee_dept, stat1, stat2, stat3, stat4, stat5, stat6. 我有一个数据库表,其中包含report_date,employee_name,employee_id,leader_name,leader_id,employee_dept,stat1,stat2,stat3,stat4,stat5,stat6。

what I'm trying to do is to be able to query and return a sum and division of values based on the report_date range selected. 我想做的是能够查询并返回基于所选report_date范围的值的总和和除法。 So if I choose to query data between 10/01/2014 & 10/25/2014, I need it to sum and divide all the values found within that range. 因此,如果我选择查询2014年10月1日至2014年10月25日之间的数据,我需要它来求和并除以该范围内的所有值。

This is my current SQL query. 这是我当前的SQL查询。

Select
report_date,
employee_name,
employee_id,
leader_name,
leader_id,
employee_dept,
stat1,
stat2,
stat3,
stat4,
stat5,
stat6,
SUM(stat2)/SUM(stat1) AS `Result Name2`,
SUM(stat3)/SUM(stat1) AS `Result Name3`,
SUM(stat4)/SUM(stat1) AS `Result Name4`,
SUM(stat5)/SUM(stat1) AS `Result Name5`,
SUM(stat6)/SUM(stat1) AS `Result Name6`
FROM daily_records
GROUP BY report_date, employee_id

Might be too much to ask but how do I use this in PHP to query the totals from a selected report_date range? 可能要问的太多了,但是如何在PHP中使用它从选定的report_date范围查询总数?

Edited to add Sample data: 编辑以添加示例数据:

DB table data 数据库表数据

report_date employee_id employee_name   employee_dept   STAT1   STAT2   STAT3   STAT4   STAT5   STAT6   leader_name leader_id
9/11/2014   1983122     emp_name1   ARK     17  7941    191 5   8137    2   Name        1001
9/11/2014   1983130     emp_name2   ARK     11  5067    516 3   5586    1   Name        1001
9/11/2014   1983138     emp_name3   ARK     3   184 16  4   204 1   Name        1001
9/11/2014   1983138     emp_name4   ARK     12  2576    7   6   2589    2   Name        1002
9/11/2014   1983138     emp_name5   ARK     21  9069    400 139 9608    1   Name        1002
9/11/2014   1983328     emp_name6   ARK     69  17929   1893    1096    20918   1   Name        1002
9/11/2014   1983349     emp_name7   ARK     12  2259    17  112 2388    2   Name        1002
9/11/2014   1983349     emp_name8   ARK     23  8194    880 211 9285    2   Name        1003
9/11/2014   1983829     emp_name9   ARK     81  16175   1431    311 17917   2   Name        1003
9/11/2014   1983888     emp_name10  ARK     7   1442    22  9   1473    1   Name        1003
9/12/2014   1983122     emp_name1   ARK     35  6823    774 22  7619    1   Name        1001
9/12/2014   1983642     emp_name2   ARK     80  18268   1439    135 19842   2   Name        1001
9/12/2014   1983643     emp_name3   ARK     55  20321   962 466 21749   1   Name        1001
9/12/2014   1983677     emp_name4   ARK     72  16379   1157    418 17954   2   Name        1002
9/12/2014   1983682     emp_name5   ARK     17  5017    419 425 5861    1   Name        1002
9/12/2014   1983978     emp_name6   ARK     48  9898    228 94  10220   1   Name        1002

(I tried to paste the table with a proper format but I couldn't) (我尝试以适当的格式粘贴表格,但无法这样做)

Stats 2 to 6 should be divided by stat 1 to get a result for each field. 统计2到6应该除以统计1以获得每个字段的结果。 for example: stat2 / stat1 AS Result Name 例如:stat2 / stat1 AS Result Name

Let me know if you need anything else. 需要帮助请叫我。

Thanks in advance 提前致谢

First you should use DATE type for date. 首先,您应该使用DATE类型作为日期。 After append your query date condition like that; 在附加了您的查询日期条件之后;

Select
report_date,
employee_name,
employee_id,
leader_name,
leader_id,
employee_dept,
stat1,
stat2,
stat3,
stat4,
stat5,
stat6,
SUM(stat2)/SUM(stat1) AS `Result Name2`,
SUM(stat3)/SUM(stat1) AS `Result Name3`,
SUM(stat4)/SUM(stat1) AS `Result Name4`,
SUM(stat5)/SUM(stat1) AS `Result Name5`,
SUM(stat6)/SUM(stat1) AS `Result Name6`
FROM daily_records
WHERE report_date >= "2014-10-01"
OR report_date <= "2014-10-25"
GROUP BY employee_id`

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

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