Добрый день!
Не могу корректно написать запрос
c Case не очень дружу
Case WHEN Data between DateS and DateE
THEN Case WHEN HoursD is not null THEN 'Д'
when HoursN = 1 then 'Н'
when HoursR is not null then 'Р' end
else Case WHEN Holiday = 0 THEN 'В' END
END
Должно быть: если HoursD is not null тогда ‘Д’ , иначе если HoursN = 1 тогда Н, иначе если HoursR is not null тогда ‘Р’ ИНАЧЕ 'В
CASE WHEN NOT Data between DateS and DateE THEN 'В'
WHEN HoursD is not null THEN 'Д'
when HoursN = 1 then 'Н'
when HoursR is not null then 'Р'
else 'В' END
Открыть справочку по твоей СУБД, найти где там функции даты-времени, подобрать нужную. Легко, правда? И так по большинству вопросов по sql, и не только. Точно быстрей чем ждать с моря погоды на форуме ))
@Nadya, вы в запросе указали, что данные нужно сгруппировать (разбить на группы) по IdStudents (ну, не зная структуры, рискну предположить, что IdStudents в данном случае - это код студента, таким образом, Вы считаете сумму часов по каждому студенту отдельно).
Если нужно найти сумму всех часов по всем студентам в заданном интервале, то достаточно выкинуть строчку с group by …
P.S. очень рекомендую ознакомиться с книжкой Мартин Грубер (он же Мартин Грабер) “Понимание SQL”
(например, отсюда можно взять PDF: