Я отредактировал запрос, выбрав все данные Сотрудников, которые провели оценки за последние шесть недель. По логике он должен каждый сотрудник два раза, если он выполнил оценки за две недели, но этот запрос показывает одну запись.Mysql Получить данные за последние шесть недель, используя JOIN
select
AssessmentEmployee.
EmployeeName,
AVG(AssessmentListing.AssessmentScore),
DATE_FORMAT((STR_TO_DATE(`AssessmentSubmittedDatetime`, '%d-%b-%Y %I:%i %p')) , '%Y-%m-%v') as _month
from AssessmentEmployee
LEFT JOIN AssessmentListing
ON AssessmentEmployee.AssessmentID=AssessmentListing.AssessmentID
WHERE (STR_TO_DATE(`AssessmentSubmittedDatetime`, '%d-%b-%Y %I:%i %p') >= DATE_FORMAT(NOW() - INTERVAL 6 Week, '%Y'))
group by AssessmentEmployee.EmployeeName
У меня есть следующая таблица, которую я использую.
AssessmentEmployee
ID
AssessmentID
EmployeeName
Другой таблица AssessmentListing
ID
AssessmentID
AssessmentSubmittedDateTime
AssessmentScore
Я хочу, чтобы сотрудники, которые имеют надрез/сделал оценку в последних неделях секса и их среднего балл.
Образец столбца данных из AssessmentListing
ID AssessmentID AssessmentSubmittedDatetime AssessmentScore
1 040416024720 04-Apr-2016 02:48 PM 50
Вам нужно сгруппировать по «номеру недели» и «имя сотрудника» вместе. – 1000111
Когда вы говорите 'group by AssessmentEmployee.EmployeeName', который просит все данные для каждого значения' EmployeeName' суммироваться в одну строку. Так что, конечно, вы получите только одну строку для каждого (а не те, которые вы ожидали). – Turophile
@Turophile Я хочу, чтобы это позволило сказать, что Адам и Джексон сделали за последние две недели. Так что это должно проявляться для обоих, а также если какая-либо неделя за последние шесть недель не имеет записи, чем в предыдущие недели, то не следует брать другие недели –