• is the following any where near what you are looking for?

    note...rounding issues...used for simplicity

    SELECT PudID

    , TranDate

    , TranQty

    , LotID

    , CAST( TranQty * PudIDPct / 100 as INT) AS jlsqty

    , CAST (SUM ( TranQty * PudIDPct / 100 ) OVER ( ORDER BY PudID , TranDate , LotID , LotIDBalSeq ) AS INT) AS jlstot

    , CAST (SUM ( TranQty * PudIDPct / 100 ) OVER ( ORDER BY PudID , TranDate ) AS INT) AS jlstot2

    FROM

    (SELECT 751 PudID,'2011-09-19 18:21:09.000' TranDate,64298 TranQty,64298 RunBal,56.477600 PudIDPct,'42011025' LotID,36314 PudIDLotBal,1 LotIDBalSeq

    UNION SELECT 751,'2011-09-20 03:20:08.000',-45938,64298,56.477600,'42011025',36314,2

    UNION SELECT 751,'2011-09-20 03:20:08.000',45938,64298,56.477600,'42011025',36314,3

    UNION SELECT 751,'2011-09-20 03:21:08.000',-18360,60346,56.483300,'42011025',25947,4

    UNION SELECT 751,'2011-09-20 03:21:08.000',14408,60346,56.477600,'42011025A',8137,1

    UNION SELECT 751,'2011-09-20 18:16:49.000',27122,87468,100.00000,'42011027',27122,1

    UNION SELECT 751,'2011-09-20 19:51:29.000',35454,122922,19.805900,'42011026',7021,1

    UNION SELECT 751,'2011-09-20 21:30:22.000',12757,121271,10.055800,'42011022A',1282,1

    UNION SELECT 751,'2011-09-20 21:30:22.000',-14408,121271,56.477600,'42011025A',0,2

    UNION SELECT 751,'2011-09-21 02:09:25.000',23515,121271,19.805900,'42011026',7021,2

    UNION SELECT 751,'2011-09-21 02:09:25.000',-23515,121271,19.805900,'42011026',7021,3

    UNION SELECT 751,'2011-09-21 02:11:00.000',-11939,121271,19.800000,'42011026',4655,4

    UNION SELECT 751,'2011-09-21 02:11:00.000',11939,121271,19.805900,'42011026A',2364,1

    ) WORK

    ORDER BY PudID , TranDate , LotID , LotIDBalSeq;

    ________________________________________________________________
    you can lead a user to data....but you cannot make them think
    and remember....every day is a school day