Trick 1:
In Group By ist der gesamte Ausdruck zu wiederholen.

Trick 2:

with xTemp as (
select .... date(.....) as mydate
from ...
)
select ...
group by ..., mydate, ...

Bei Week_ISO ist noch zu berücksichtigen, dass die Funktion nur die Woche OHNE Jahr ermittelt.

Die Woche 01 kann daher das aktuelle oder bereits das Folgejahr, die Woche 53 das Vor- oder aktuelle Jahr sein.

Du musst also hier noch das Jahr dieser Woche mit berücksichtigen!

case week_iso(mydate)
when 1
case month(mydate)
when 12 then year(mydate) + 1 else year(mydate) end
when 53
case month(mydate)
when 1 then year(mydate) - 1 else year(mydate) end
else
year(mydate)
end as weekyear