Мне нужно получить сумму столбца, который называется prodflag, который составляет только 1 и 0. Однако сложная часть заключается в том, что мне нужно получить сумму работы в контейнерах за 4 недели, поэтому что-то вроде этого:
- первое ведро: неделя 14,13,12,11
- второе ведро: неделя 10,9,8,7
- третье ведро: неделя 6,5,4,3
select
person
, sup
, program
, city
, sum( case when weekraw between DATEPART(WEEK,DATEADD(WEEK, -3, GETDATE())) and DATEPART(WEEK, GETDATE()) then prodflag else 0 end) firstbucket
, sum( case when weekraw between DATEPART(WEEK,DATEADD(WEEK, -6, GETDATE())) and DATEPART(WEEK,-3, GETDATE()) then prodflag else 0 end) secondbucket
, sum( case when weekraw between DATEPART(WEEK,DATEADD(WEEK, -9, GETDATE())) and DATEPART(WEEK,-6, GETDATE()) then prodflag else 0 end) thirdbucket
from final
group by
person
, sup
, program
, city
Однако я думаю, что сумма, объединенная с делом, не сработает, поскольку, когда я пытаюсь заставить работать эту часть кода, она выдает ошибку:
, sum(
case when weekraw between DATEPART(WEEK,DATEADD(WEEK, -6, GETDATE())) and DATEPART(WEEK,-3, GETDATE()) then prodflag else 0 end) secondbucket
Я что-то упускаю или в этом случае какой лучший способ go?