Php 无法获取sql中所有类似行的总和

Php 无法获取sql中所有类似行的总和,php,mysql,sql,Php,Mysql,Sql,我有一张学生预订表,上面列出了他预订的所有老师。 结构如下: Teacher Name Date start_time end_time hour rate 现在我想把预约列在下面,我想计算学生支付给每位老师的总费用和每位老师预约的总小时数。 我想用一个查询来完成它,我正在使用php和mysql S. No Teacher's Name Date Class Start time Class End Time Hou

我有一张学生预订表,上面列出了他预订的所有老师。 结构如下:

Teacher Name    Date     start_time   end_time     hour       rate
现在我想把预约列在下面,我想计算学生支付给每位老师的总费用和每位老师预约的总小时数。 我想用一个查询来完成它,我正在使用php和mysql

 S. No  Teacher's Name         Date      Class Start time    Class End Time   Hours    Rate

1.       Amit Kumar           5-10-2019      8:00 A.M.          9:00 A.M.       1      2000.00
2.       Amit Kumar           6-10-2019      9:00 A.M.         10:00 A.M.       1      5000.00
Total                                                                           2      7000.00

3.       Pawan Kumar          7-10-2019      10:00 A.M.        11:00 A.M.       1      4000.00
4.       Pawan Kumar          8-10-2019      7:00 A.M.          8:00 A.M.       1      4000.00
Total                                                                           2      8000.00
...
...
我不认为您可以查询显示预订类的详细部分,除非您打算在html部分添加一些函数

编辑---------------------

试试这个


不
教师姓名
日期
上课时间
下课时间
小时
比率
我不认为您可以查询显示预订类的详细部分,除非您打算在html部分添加一些函数

编辑---------------------

试试这个


不
教师姓名
日期
上课时间
下课时间
小时
比率

尽管如此,如果您将开始时间和结束时间声明为日期时间,事情会简单得多

在下面的代码行中,我必须以正常时间格式更改字符串,然后执行时间的基本求和:

SELECT TeacherName, SUM(Rate) 
SEC_TO_TIME(SUM(TIME_TO_SEC
(TIMEDIFF(STR_TO_DATE(CONCAT(`date`, ' ',
REPLACE(`end_time`, '.', '')), '%Y-%m-%d %h:%i %p'), STR_TO_DATE(CONCAT(`date`, ' ',
REPLACE(`start_time`, '.', '')), '%Y-%m-%d %h:%i %p'))
)
)
) AS tot_time
FROM teachers
GROUP BY TeacherName

尽管如此,如果您将开始时间和结束时间声明为日期时间,事情会简单得多

在下面的代码行中,我必须以正常时间格式更改字符串,然后执行时间的基本求和:

SELECT TeacherName, SUM(Rate) 
SEC_TO_TIME(SUM(TIME_TO_SEC
(TIMEDIFF(STR_TO_DATE(CONCAT(`date`, ' ',
REPLACE(`end_time`, '.', '')), '%Y-%m-%d %h:%i %p'), STR_TO_DATE(CONCAT(`date`, ' ',
REPLACE(`start_time`, '.', '')), '%Y-%m-%d %h:%i %p'))
)
)
) AS tot_time
FROM teachers
GROUP BY TeacherName

start\u time
end\u time
列的类型是什么?@Tim Biegeleisen:它是varchar(50)NULL,它被保存为08:15:00,您真的在该列中存储了
11:00 A.M.
,或者你改为存储
11:00:00
?像11:00:00那样保存,这是用php函数转换的,但我的主要问题是计算同一教师的总工资和预订的小时数。如果你使用日期时间类型作为开始时间和结束时间,你的生活会轻松得多,然后他们可以很容易地确定日期,给出小时数。甚至不要把它们分为“日期”和“时间”——无论你想在哪里存储日期和时间,都要使用datetime而不是varchar。使用一对datetime可以让你的课程在晚上11点开始,第二天凌晨1点结束。
start\u time
end\u time
列的类型是什么?@Tim Biegeleisen:它是varchar(50)NULL,它被保存为08:15:00。你真的在该列中存储了
11:00 a.M.
,或者你改为存储
11:00:00
?像11:00:00那样保存,这是用php函数转换的,但我的主要问题是计算同一教师的总工资和预订的小时数。如果你使用日期时间类型作为开始时间和结束时间,你的生活会轻松得多,然后他们可以很容易地确定日期,给出小时数。甚至不要把它们分为“日期”和“时间”——无论你想在哪里存储日期和时间,都要使用datetime而不是varchar。使用一对datetime允许您的类在晚上11点开始,在下一天凌晨1点结束group by在我的情况下不起作用,因为当我使用group by时,它只返回该特定教师的一行感谢您的回答,但当我将其添加到jquery时,datatable在删除colspan后不会正确显示输出,因为datatable没有支持colspan。Group by在我的情况下不起作用,因为当我使用Group by时,它只返回该特定教师的一行。谢谢您的回答,但当我将其添加到jquery时,删除colspan后,datatable输出未正确显示,因为datatable不支持colspan。