У меня есть SQL-запрос, который работает прекрасно, чтобы вернуть количество часов работник работает в какой-либо конкретной работеMySQL: Добавить к графе с футляром ... тогда
SELECT worker.WorkerID, worker.fullname, job.JobCode, job.jobName, Count(slottime.FK_Hour) AS NUMBER_OF_HOURS_WORKED
FROM (
(
(job INNER JOIN slot
ON job.JobCode = slot.fk_JobCode
)
INNER JOIN (worker INNER JOIN slotworker ON worker.WorkerID = slotworker.FK_worker)
ON slot.SlotNo = slotworker.FK_SlotNo)
INNER JOIN slottime ON slot.SlotNo = slottime.FK_SlotNo
)
LEFT JOIN manager ON (job.JobCode = manager.FK_JobCode) AND (worker.WorkerID = manager.FK_WorkerID) GROUP BY worker.WorkerID, worker.fullname, job.JobCode, job.jobName, manager.is_the_boss
Однако не все работники равны. Рабочим, которые распределяются как управляющие, оплачивается дополнительно 2 часа на работу.
таблица менеджер структурирована JobCode, WorkerID, is_the_boss
is_the_boss просто записывает '1' в том случае, что работник выделяется должность менеджера этой конкретной работы.
Как повлиять на количество slottime.FK_Hour, чтобы добавить дополнительные 2 часа для каждого из заданий, где (CASE WHEN is_the_boss = 1) истинно?
примечание стороны, Вы не должны использовать 'SUM' вместо' Count', чтобы получить общее количество часов для каждого из них? –