gpt4 book ai didi

php - MySQL/PHP 按日期范围生成值

转载 作者:行者123 更新时间:2023-11-29 12:37:17 25 4
gpt4 key购买 nike

我已经阅读了大量有关 PHP 中的交叉表报告(数据透视表)的内容,并且一直在尝试完成报告,但我陷入了困境。

我有一个数据库表,其中包含report_date、employee_name、employee_id、leader_name、leader_id、employee_dept、stat1、stat2、stat3、stat4、stat5、stat6。

我想做的是能够根据所选的report_date范围查询并返回值的总和和除法。因此,如果我选择查询 10/01/2014 和 10/25/2014 之间的数据,我需要它对该范围内找到的所有值进行求和和除法。

这是我当前的 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

可能问得太多了,但我如何在 PHP 中使用它来查询选定的 report_date 范围内的总计?

编辑以添加示例数据:

数据库表数据

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

(我尝试以正确的格式粘贴表格,但失败了)

统计数据 2 到 6 应除以统计数据 1 以获得每个字段的结果。例如:stat2/stat1 AS 结果名称

如果您还需要任何其他信息,请告诉我。

提前致谢

最佳答案

首先,您应该使用 DATE 类型来表示日期。像这样附加查询日期条件后;

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`

关于php - MySQL/PHP 按日期范围生成值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26577195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com