Определение недели по умолчанию начинается с воскресенья, поэтому вы можете проверить, есть ли у вас другая конфигурация, отметив
select @@DATEFIRST
Если возвращается 7, то первый день недели - воскресенье.измените это, используя следующую команду FIRSTDATE на SQL Server
SET DATEFIRST
Возможно, вы можете использовать следующее решение на SQL Server, где я использую выражение CTE (я неуверен, что MySQL поддерживает CTE) и таблица чисел SQL
declare @d1 date = '01/01/2018'
declare @d2 date = '12/31/2018'
;with cte as (
select datepart(wk, @d2) as n
), agg as (
Select
eid,
datepart(wk, mydate) as dp,
sum(late) as lates
from Employee_Table
where
mydate between @d1 AND @d2
Group by
eid,
datepart(wk, mydate)
)
Select
i, eid, lates
from dbo.NumbersTable(1,datepart(wk, @d2),1) as nt
left join agg
on i = dp
order by i, eid