@ivankirshin

Как выполнить sql запрос?

SELECT w.name_worker, w.surname_worker, w.midname_worker, w.id_worker, SUM(number) numb FROM workers w, orders o, exhours e WHERE w.id_worker = e.id_worker AND e.id_order = o.id_order AND o.datetime_order >= '$date_start' AND o.datetime_order <= '$date_end' GROUP BY w.id_worker;

Использую такой запрос, чтобы посчитать количество отработанных часов сотрудником за период времени.
Как можно добавить в выдачу всех сотрудников из таблицы workers, чтобы были и те, кто ничего не отработал за этот период?
dc0724301f814515acf35cd405d49677.JPG
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
@ivankirshin Автор вопроса
Решил проблему
SELECT w.name_worker,
       w.surname_worker,
       w.midname_worker,
       w.id_worker,
       SUM(number) numb
FROM workers w
LEFT JOIN exhours e ON (w.id_worker = e.id_worker)
LEFT JOIN orders o ON (e.id_order = o.id_order
                       AND o.datetime_order >= $date_start
                       AND o.datetime_order <= $date_end)
GROUP BY w.id_worker
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mletov
Вместо , и WHERE используйте LEFT JOIN и ON
в WHERE оставьте только условие по дате
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы