Seleccione el total acumulado hasta que se alcance el SUM específico

Estoy tratando de seleccionar los primeros n valores de rowid de la siguiente variable de tabla que me acercarán a una suma (itemcount) de 200,000 sin cruzar ese umbral. Si estuviera viendo esto manualmente, solo tomaría las 3 primeras filas. No quiero usar un cursor a menos que no haya una forma basada en conjuntos puros.

¿Cuál es una buena forma basada en conjuntos para obtener todos los valores de rowid "suma while / hasta" llego a un total acumulado de 200,000?

Miré "totales acumulados" enhttp://www.1keydata.com/sql/sql-running-totals.html pero eso no parecía que funcionaría porque la tabla real tiene alrededor de 500 mil filas.

Aquí está lo que he intentado hasta ahora:

declare  @agestuff table ( rowid int primary key , itemcount int , itemage datetime )
insert into @agestuff values ( 1 , 175000 , '2013-01-24 17:21:40' )
insert into @agestuff values ( 2 , 300    , '2013-01-24 17:22:11' )
insert into @agestuff values ( 3 , 10000 , '2013-01-24 17:22:11' )
insert into @agestuff values ( 4 , 19000 , '2013-01-24 17:22:19' )
insert into @agestuff values ( 5 , 16000 , '2013-01-24 17:22:22' )
insert into @agestuff values ( 6 , 400   , '2013-01-24 17:23:06' )
insert into @agestuff values ( 7 , 25000 , '2013-01-24 17:23:06' )

select sum(itemcount) from @agestuff  -- 245700 which is too many

select sum(itemcount) from @agestuff  
  where rowid in (1,2,3) -- 185300 which gets me as close as possible

Usando SQL Server 2008. Cambiaré a 2012 si es necesario.

Respuestas a la pregunta(1)

Su respuesta a la pregunta