• Something like this maybe?

    CREATE TABLE #Sales

    (

    ClientID int,

    SaleDate date

    );

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (1, '20120131');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (2, '20120131');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (3, '20120131');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (4, '20120131');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (1, '20120229');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (2, '20120229');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (4, '20120229');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (5, '20120229');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (1, '20120331');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (2, '20120331');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (5, '20120331');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (6, '20120331');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (1, '20120430');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (6, '20120430');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (7, '20120430');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (1, '20120531');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (5, '20120531');

    INSERT INTO #Sales (ClientID, SaleDate)VALUES (7, '20120531');

    --SELECT * FROM #Sales;

    declare @StartDate date = '20120101',

    @EndDate date = '20120630';

    WITH SalesActivity as (

    SELECT

    CASE WHEN s2.ClientID IS NULL

    THEN 'NewClient'

    ELSE 'LostClient'

    END AS ClientAction,

    RIGHT(CONVERT(VARCHAR, ISNULL(s1.SaleDate, DATEADD(M,1,s2.SaleDate)), 106), 8) AS SaleDate,

    ISNULL(s1.ClientID, s2.ClientID) AS ClientID,

    ISNULL(s1.SaleDate, DATEADD(M,1,s2.SaleDate)) SalesDate

    FROM

    #Sales s1

    FULL JOIN #Sales s2

    ON s1.ClientID = s2.ClientID

    AND MONTH(s1.SaleDate) = MONTH(s2.SaleDate) + 1

    WHERE

    s1.ClientID IS NULL

    OR s2.ClientID IS NULL

    )

    SELECT

    ClientAction,

    SaleDate,

    ClientID

    FROM

    SalesActivity

    WHERE

    SalesDate between dateadd(mm,1,@StartDate) and dateadd(mm,datediff(mm,0,@EndDate),-1)

    ORDER BY

    SalesDate,

    ClientID;

    GO

    DROP TABLE #Sales

    go