2015-07-28 2 views
2

Привет У меня есть таблица otasub.mysql расчет OT Часы с условиями

Мне нужно вычислить общее количество часов (Reg_Hours), но за исключением всех воскресений.

ot_plot_date ot_hr ot_day  ot_hour_nextday ot_nextday_day 
2015-07-22  2.75 Wednesday 1.5    Thursday 
2015-07-23  4.5  Thursday 2.75   Friday 
2015-07-25  8  Saturday 3    Sunday 
2015-07-19  8  Sunday  1.5    Monday 

Мой запрос

SELECT `ot_plot_date`,`ot_hr`,ot_day, `ot_hour_nextday`,`ot_nextday_day`, 
SUM(CASE WHEN otasub.ot_day <> 'Sunday' 
THEN ot_hr + ot_hour_nextday ELSE 0 END) as Reg_Hours 
FROM `otasub` 
GROUP BY otasub.`ID` , ot_day , ot_type_nextday 

результат, что им получать это.

ot_plot_date ot_hr ot_day  ot_hour_nextday ot_nextday_day Reg_Hours 
2015-07-22  2.75 Wednesday 1.5    Thursday  4.25 
2015-07-23  4.5  Thursday 2.75   Friday   7.25 
2015-07-25  8  Saturday 3    Sunday   **11** 
2015-07-19  8  Sunday  1.5    Monday   1.5 

Результат, который я бы хотел увидеть.

ot_plot_date ot_hr ot_day  ot_hour_nextday ot_nextday_day Reg_Hours 
2015-07-22  2.75 Wednesday 1.5    Thursday  4.25 
2015-07-23  4.5  Thursday 2.75   Friday   7.25 
2015-07-25  8  Saturday 3    Sunday   **8** 
2015-07-19  8  Sunday  1.5    Monday   1.5 

ответ

0

Запрос вы используете дает ответ, вы должны ожидать, потому что вы используете специальный «воскресенье» логика только тогда, когда ot_day = «воскресенье» не тогда, когда ot_nextday_day = «воскресенье». Возможно, вы имели в виду запрос таким:

SELECT `ot_plot_date`,`ot_plot_total_hr`,ot_day, `ot_nextday`,`ot_nextday_day`, 
SUM(CASE WHEN otasub.ot_nextday_day <> 'Sunday' 
THEN ot_plot_total_hr + ot_nextday ELSE ot_nextday END) as Reg_Hours 
FROM `otasub` 
GROUP BY otasub.`ID` , ot_day , ot_type_nextday 

Обратите внимание на изменение в логике СЛУЧАЙ проверить ot_nextday_day вместо ot_day.

Кроме того, в качестве второстепенной точки, похоже, что имена полей в вашем запросе не совпадают с именами полей в структуре таблицы, как вы ее здесь представили. В частности, столбцы ot_plot_total_hr и ot_hour_nextday.

+0

Извините, я забыл, что уже отредактировал столбцы, поля. запрос, который вы дали, не дает мне правильного расчета – freddy

Смежные вопросы