SQL Server 2008 - Return a row when the record has never been created before
I need to write a report that will return the record for the first time a customer buys a product which they have never bought before. I do not what to see the customer's sales history, only this one record for each new product they buy for the first time. I also need to be able to return records for a specific date range OR for a specific customer. I have gotten this far, but this query only returns the 1st purchase within my date range parameters. I'm building the report in SQL Server Report Builder.
SELECT R1.Customer, R1.Name, MIN(CONVERT(VARCHAR(101), R2.InvoiceDate, 110)) AS "FirstSale", R3.StockCode, MONTH(MIN(CONVERT(VARCHAR(101),R2.InvoiceDate,110))) AS Month, YEAR(MIN(CONVERT(VARCHAR(101),R2.InvoiceDate,110))) AS Year FROM dbo.ArCustomer AS R1 LEFT JOIN dbo.ArInvoice AS R2 ON R1.Customer = R2.Customer LEFT JOIN dbo.SalHistoryMaster as R3 ON R1.Customer = R3.Customer GROUP BY R1.Customer, R1.Name, R3.StockCode ORDER BY R1.Customer