Thank June7 for the link, based on the link, i made a workable query as following
Code:
SELECT f.dt, f.emp, f.amt, f.apart as dapart FROM(
SELECT dt, dt-pd AS [apart], emp, amt FROM (
SELECT dt, emp, amt,
(SELECT MAX(dt) FROM TA T1 WHERE T1.emp = T.emp AND T1.dt < T.dt) AS pd
FROM TA AS T)) AS f INNER JOIN (
SELECT emp, Max(apart) as dapart FROM(
SELECT dt, dt-pd AS [apart], emp, amt FROM (
SELECT dt, emp, amt,
(SELECT MAX(dt) FROM TA T1 WHERE T1.emp = T.emp AND T1.dt < T.dt) AS pd
FROM TA AS T))
GROUP BY emp
) AS l ON (f.emp=l.emp) and (f.apart=l.dapart);
It sounds too complicated although it works, hope some expert here can refine it bit to make it simple, or else after a day i will close this thread as solved.
Thank you guys