• Using sqlfiddle, I was able to test this:

    WITH wos AS(

    SELECT Id,

    wo,

    wodate,

    LEAD( wodate, 1, '99991231') OVER( PARTITION BY Id ORDER BY wodate) AS enddate,

    amount

    FROM #workorder w

    )

    SELECT *

    FROM wos w

    LEFT

    JOIN #revenue r ON r.Id = w.ID

    AND r.revdate BETWEEN w.wodate AND w.enddate

    Luis C.
    General Disclaimer:
    Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?

    How to post data/code on a forum to get the best help: Option 1 / Option 2