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。