【发布时间】:2015-04-19 13:24:09
【问题描述】:
我有一个从用户那里收到的日期“$user_input_date”,并且 我在 select 子句中的其他查询中有一个查询,我想在这个子查询中选择总小时数,其中两个条件如下所示
$sql="SELECT teacher.teacher_id,name,lname,father_name,salary_per_hour,monthly_salary,"
. "(select ($user_month - month(salary_start_date)) from teacher where teacher_id=$id) as deff_month ,"
. "(select ADDDATE(salary_start_date, interval deff_month month) from teacher where teacher_id=$id) as start_interval, "
. "(select ADDDATE(start_interval, interval 1 month)) as end_interval ,"
. " (select DATE_SUB(start_interval, interval 1 month)) as reverse_end_interval,"
. "(**select sum(hours) from teacher_hours_late where date>= start_interval AND date<end_interval OR date>=start_interval AND date<reverse_end_interval and teacher_id=$id ) as total_late**"
. " from teacher where teacher.branch_id=$branch_id and teacher.teacher_id=$id"
我的目标是在我从用户那里收到的日期之前达到日期间隔的总小时数,如果 start_interval>$user_input_date 那么我想选择 start_interval 和 end_interval 之间的间隔,否则选择 strong>start_interval 和 reverce_end_interval 在下面的 where 子句中查询我在 where 子句中的条件是错误的,因为我不知道请帮助我亲爱的select sum(hours) from teacher_hours_late where date>= start_interval AND date<end_interval OR date>=start_interval AND date<reverse_end_interval and teacher_id=$id ) as total_late
【问题讨论】: