Создание таблицы рабочих с первой сменой на прошлой неделе - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь составить список работников, у которых была первая смена за последнюю неделю.

Прямо сейчас мой SQL работает, если я помещаю определенного работника с первым сдвигом на прошлой неделе в мое предложение where (WHERE c.temp_nr ='XXXX'), но когда я удаляю это предложение, он просто тайм-аут

SELECT MIN(p.start_date), CONCAT(c.first_name, ' ', c.last_name) AS 'c.fullname', c.temp_nr
FROM contactstable c 
LEFT JOIN projectlines p on c.temp_nr = p.candidate_number 
WHERE c.temp_nr ='XXXX' and c.contact_type = 'Candidate' 
HAVING MIN(p.start_date) between DATE_SUB( CURDATE( ) , INTERVAL (dayofweek(CURDATE())+6) 
DAY ) 
AND DATE_SUB( CURDATE( ) , INTERVAL (dayofweek(CURDATE())) 
DAY )

1 Ответ

0 голосов
/ 03 июля 2019

Использование GROUP BY c.temp_nr

SELECT MIN(p.start_date), CONCAT(c.first_name, ' ', c.last_name) AS 'c.fullname', c.temp_nr
FROM contactstable c
LEFT JOIN projectlines p on c.temp_nr = p.candidate_number
WHERE c.contact_type = 'Candidate'
GROUP BY c.temp_nr
HAVING
    MIN(p.start_date)
        between
            DATE_SUB(CURDATE(), INTERVAL (dayofweek(CURDATE())+6) DAY)
            AND DATE_SUB(CURDATE() , INTERVAL (dayofweek(CURDATE())) DAY)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...