• Maybe you can do something with a CTE like the following...

    DECLARE @Tbl AS TABLE (

    Symbol INT,

    MarketDate DATETIME,

    Price DECIMAL(10,2),

    Volume INT

    )

    INSERT INTO @Tbl

    VALUES (1, '1/1/2008', 1.00, 100000)

    INSERT INTO @Tbl

    VALUES (1, '1/2/2008', .98, 105000)

    INSERT INTO @Tbl

    VALUES (1, '1/3/2008', 1.01, 110000)

    INSERT INTO @Tbl

    VALUES (1, '1/4/2008', 1.02, 120000)

    INSERT INTO @Tbl

    VALUES (1, '1/5/2008', 1.12, 125000)

    INSERT INTO @Tbl

    VALUES (1, '1/6/2008', 1.14, 135000)

    INSERT INTO @Tbl

    VALUES (1, '1/7/2008', 1.10, 150000)

    INSERT INTO @Tbl

    VALUES (1, '1/8/2008', 1.12, 100000)

    INSERT INTO @Tbl

    VALUES (1, '1/9/2008', 1.12, 175000)

    INSERT INTO @Tbl

    VALUES (2, '1/2/2008', 1.22, 1000100)

    INSERT INTO @Tbl

    VALUES (2, '1/5/2008', 1.24, 1123000)

    INSERT INTO @Tbl

    VALUES (2, '1/7/2008', 1.25, 1085000)

    INSERT INTO @Tbl

    VALUES (2, '1/17/2008', 1.25, 9999999);

    --SELECT *

    --FROM @Tbl;

    WITH WeekTable (Symbol, MarketDate, Volume)

    AS

    (

    SELECT T1.Symbol,

    T1.MarketDate,

    T2.Volume

    FROM @Tbl T1

    INNER JOIN @Tbl T2 ON

    (T1.Symbol = T2.Symbol

    AND T2.MarketDate <= T1.MarketDate

    AND T2.MarketDate > DATEADD(WEEK, -1, T1.MarketDate))

    )

    SELECT Symbol,

    MarketDate,

    AVG(Volume) [RollVol]

    FROM WeekTable

    GROUP BY Symbol, MarketDate