; with
UserID as
(
select distinct UserID
from tbl
),
WeekID as
(
select distinct WeekID
from tbl
),
ItemID as
(
select distinct ItemID
from tbl
),
comb as
(
select UserID, WeekID, ItemID
from UserID
cross join WeekID
cross join ItemID
)
insert into tbl (UserID, WeekID, ItemID, ItemQty, ItemYTDQty)
select c.UserID, c.WeekID, c.ItemID, ItemQty = 0, isnull(y.ItemYTDQty, 0)
from comb c
cross apply
(
select ItemYTDQty = sum(ItemQty)
from tbl x
where x.UserID = c.UserID
and x.ItemID = c.ItemID
and x.WeekID <= c.WeekID
) y
where not exists
(
select *
from tbl x
where x.UserID = c.UserID
and x.WeekID = c.WeekID
and x.ItemID = c.ItemID
)
KH
Time is always against us